Digital content delivery system, digital content delivery method, program for executing the method, computer readable recording medium storing thereon the program, and server and client for it

ABSTRACT

A system distributes digital contents through first and second networks and. A server is connected to the first network, and clients for receiving and displaying or reproducing the digital contents are connected to the second network. The server divides digital contents held therein into a plurality of packets, and transmits packets of a minimum unit for constructing the digital contents to the second network. The clients include storage for holding the digital contents therein by use of the packets of the minimum unit received from the server and packets received from other clients constructing the second network.

CROSS REFERENCE AND PRIORITY

This application filed under 35 USC 371, is cross-referenced with, andclaims priority from, International Patent Application PCT/JP03/07093filed on Jun. 4, 2003, and published in English with Publication No. WO03/105421 on Dec. 18, 2003, under PCT article 21(2), which in turnclaims priority of Japanese Application No. 2002-165014, filed on Jun.6, 2002 and Japanese Application No. 2002-303850, filed on Oct. 18,2002.

BACKGROUND OF THE INVENTION

The present invention relates to a distribution of digital contents.More specifically, the present invention relates to a digital contentsdistribution system and a digital contents distribution method, whichdistribute digital contents from digital contents distribution sitesthrough networks, and make a plurality of clients store the digitalcontents therein, thus making it possible to distribute the digitalcontents efficiently through the networks. Moreover, the presentinvention relates to a program for executing the method, a computerreadable recording medium including the program, and to a server andclients therefor.

Moreover, the present invention relates to a digital contentsdistribution system, which makes it possible to distribute the digitalcontents to a predetermined wide area group including a plurality ofgroups connected to one another through the networks, each group beingconstructed by including a plurality of clients, while reducingoverheads of communication traffics to servers. Furthermore, the presentinvention relates to a server and clients for the system, a controlmethod for making computers function as the above-described server andclients, a program for the method, and a computer readable recordingmedium recording the program therein.

Recent years, more and more widespread have been networks such as theInternet through systems including a computer, a public telephone line,ISDN, optical communication, wireless communication, ADSL and CATV. Itis conceived that services will be further widespread in the future,which distribute text data, audio data, image data and multimedia datamade by compounding these through the networks to clients such as aplurality of computers or mobile terminals from servers placed at sitesproviding the digital contents, besides digital contents such as E mail.

Meanwhile, besides the first network such as the above-describedInternet, which is capable of managing or distributing the digitalcontents over a wide range, the second networks such as Local AreaNetwork (LAN) and Wide Area Network (WAN) have also been widespreadrapidly, which share, manage and distribute the digital contents inrelatively narrow ranges in comparison with the Internet. Theabove-described second networks enable efficient use of computerresources in public groups such as business enterprises, governmentbodies, administrative organs, educational institutions, libraries andbroadcast communication organization. Specifically, it can be said thatcurrent connections among servers in a public group are made through theplurality of networks belonging to the plurality of groups in manycases. Usually, a plurality of clients such as the computers(hereinafter, referred to as “clients”) are interconnected so as to forma predetermined group in each of the above-described second networks,thus making it possible for each group to hold the given digitalcontents.

In the above-described network environment, it may sometimes benecessary to distribute the digital contents held in the server to aplurality of clients belonging to other networks. Heretofore, a varietyof transmission methods or systems for distributing the digital contentstransmitted from a server to a plurality of clients have been proposed.

For example, Deering, S., et al. has proposed a method called IPmulticast for the purpose of avoiding overlap of packets on a networkroute in “Multicast Routing in Internetworks and Extended LANs (StanfordUniversity, Department of Computer Science Technical Report:STAN-CS-88-1214, July, 1988).” FIG. 31 is a schematic diagramillustrating the IP multicast method proposed by Deering, et al. Asillustrated in FIG. 31, the IP multicast method proposed by Deering, etat. has had a disadvantage in involving complicatedness of networkresources, which includes a necessity of placing dedicated routershaving “states” regarding clients receiving service instead of simplerouters performing IP transfer though the method eliminates the overlapof the packets on the network 100 to enable good communication. Anotherdisadvantage in that scalability of the network is restricted hasoccurred, which includes a necessity of expansion of network equipmentand incapability of coping with a situation such as sudden interferencewith and departure of the client in association with the above-describedcomplicatedness of the network resources.

Moreover, because the IP multicast has a structure of sending data froman arbitrary source to an arbitrary group, the IP multicast has adisadvantage in weakening against a malicious attack and requiring aunique global address to be secured for the group. However, the IPmulticast has an advantage in that the service can be managed at lowcost in terms of distributing the digital contents because the IPmulticast basically provides best-effort service. However, the IPmulticast is unsuitable for use in a backbone line of an enterprise, inwhich a slight line disconnection leads to a great loss, and use inmoving picture distribution always requiring a fixed band to be secured.As described above, the IP multicast has a disadvantage in that handlingfor securing reliability, avoiding congestion and securing security isdifficult in comparison with unicast. Furthermore, the IP multicastrequires a large-scale change of a network infrastructure. For theabove-described reasons, it cannot be said yet that the IP multicast ispractical.

Moreover, in order to solve the above-described problems of the IPmulticast, an “applicant-level multicast” system has been proposed,which is described in the following documentations. DimitriosPendarakis, Sherlia Shi, Dinesh Verma, and Marcel Waldvogel. Almi: Anapplication level multicast infrastructure. In Proceedings of the 3rdUSENIX Symposium on Internet Technologies and Systems (USITS), pages49-60, 2001; Y. Chu, S. Rao, and H. Zhang. A Case For End SystemMulticast. In Proc. ACM Sigmetrics, June 2000; P. Francis, “Yoid:extending the internet multicast architecture.”

In the foregoing background arts, a system is used, in which clientsalso serve as relay points for packet transmission, and packets aretransferred to downstream clients. FIG. 32 is a schematic diagramillustrating digital contents distribution using the application-levelmulticast system. The application-level multicast system shown in FIG.32 is configured in such a manner that the client 106 is given a rankand the client 106 can transmit packets in accordance with individualpath tree structures. In the application-level multicast systemillustrated in FIG. 32, Pendarakis, et al. calculated the minimumnetwork for efficiently connecting all of the join clients to oneanother. Moreover, Chu, et at. tried to allocate packet flows to theclients.

The minimum network is formed as, for example, the minimum spanning tree(MST) in which branches are weighted by a round-trip time (RTT). Becausethe MST is determined statically, it will be necessary to reconstructthe network if the departure of the join clients occurs. Because theserver 108 executes the calculation that performs this reconstruction,there is a disadvantage in that an overhead given to the server 108 isincreased. Moreover, there has been proposed a method for reducing theoverhead to the server 108, in which the reconstruction caused by thejoin and departure of the respective clients is carried out locally, andthe entire construction of the minimum network is reviewed, and so on.Nevertheless, if a client located at an intermediate point in a pathtree structure that transmits the packets is departed, and if thecentral processing unit (CPU) of the client 106 is allocated to anotherprocess to fail in relaying the packets, then the minimum network willbe affected by a factor such as a sudden shutdown of packet receiving ina client downstream thereof. In order to avoid such a disadvantage, itis necessary to take measures such as impartment of a redundancy to theminimum network (tree structure) and prepreparation of an alternate treestructure. This brings more and more complicatedness of the constructionof the minimum network, and therefore, the overhead added to the server108 in the reconstruction will be further increased. This is becauseeach client is given a role of the relay statically and because thegeneration and reconstruction of the path tree structure includingnetwork construction information is carried out only by the server.

Meanwhile, there has also been proposed a system for caching thetransmission packets coordinately by use of dispersed clients. In thesystem for caching the transmission packets coordinately, data isacquired not from the server 108 but from the caches of the clients 106(Specification of Japanese Patent Application No. Hei 11 (1999)-282332,Title of the Invention: “Data Caching System on Basis of DispersedClients”). The specification of Japanese Patent Application No. Hei 11(1999)-282332 discloses a technique of acquiring data from a client, inwhich the respective clients search the client caching desired datatherein by use of a correspondence table between data cache and theclients.

Although the method disclosed in the specification of Japanese PatentApplication No. Hei 11 (1999)-282332 enables good caching in the client,a delay occurs at least by a length of the data to be cached when dataare acquired. Therefore, in the case of streaming requiring realtimecharacteristics with a short time delay, the method is insufficient interms of the realtime characteristics. Moreover, the specification ofJapanese Patent Application No. Hei 11 (1999)-282332 never disclosescaching for data with a long length. Furthermore, if the above-describeddata caching system manages the streaming data by dividing this datainto small packets for the purpose of reducing the time delay due to thecaching, then it will be necessary to update the correspondence tablefor the caching frequently in the unit of the packets, and the overheadfor the client will be increased. Therefore, not only the advantage ofincluding the correspondence table in the clients is damaged, but alsothe overheads of the clients are significantly increased. Accordingly,the method is impractical.

Meanwhile, Aramaki, et al. have proposed a construction of connectingthe clients to an edge server. FIG. 33 schematically illustrates asystem proposed by Aramaki, et al. The system illustrated in FIG. 33uses the server 108 placed remotely through the network 100 and the edgeserver 100 placed near the clients 106. The network 100 between theremote server 108 and the edge server 110 is formed as a best-efforttype network, where digital contents are transmitted so as to make fulluse Of a bandwidth thereof, and then the transmitted digital contentsare once cached in the edge server 110. The cached digital contents arestreamed anew from the edge server to the clients nearby, and thus thedistribution of the digital contents to the clients is completed.Specifically, the method of Aramaki, et al. provides one solution to amethod for restricting overlap of packets between the server 108 and theedge server 110 to avoid congestion of the network. However, theoverhead of the edge server 110 is prone to be a subject even in thecase of using the edge server 110, and it is necessary to reduce overlapof transmission packets also in the case of transmitting the packetsfrom the edge server 110 to the respective clients.

If a backbone between the server 108 and the edge server 110 is abandwidth sharing type intranet even in the case where the Internet isnot used for connection therebetween, a similar construction to theabove, which uses the server 108 and the edge server 110, can beutilized for avoiding the congestion due to the packet overlap on thebackbone. However, it is necessary to place the edge servers 110 underall of end routers interconnected by backbone routers. Therefore, costof constructing the second network such as LAN and WAN is increased,thus causing disadvantages such as a further increase of maintenancecost of the edge server 110 and an increase of a load to a networkadministrator, which is caused thereby. Moreover, a status is brought,where the increase of the complicatedness as a system becomes a problemfrom a viewpoint of the network and autonomic computing therefor. Hence,it has been necessary to provide a plurality of clients with a simpleand robust operational system, which includes functions such asself-configuring and self-optimizing without any special auxiliaryservers (edge servers and the like) and imparts network autonomy whilesecuring the realtime characteristics in the digital contents.

Moreover, in the above-described IP multicast, a transmission sourcedesignates an IP address having a value within a special range as adestination and transmits the packets thereto. This IP addressrepresents a multicast group. A host on the receiving side transmits anjoin request to this group to the respective routers on the path, andthe routers having received the request recognize a group havingtransmitted the join request and execute processing of distributing thepackets thereto. The same packets can be transmitted at one time to alarge number of hosts on the receiving side without the overlap of thepackets by performing appropriate routing also by use of the multicast.

In a single network that does not diverge from the above-describedrouters and limited networks, the contents distribution by the multicastfunctions well without causing a large investment burden on theequipment/apparatus or the disadvantage to the communication trafficsparticularly. However, the communication protocol for use in the presentInternet as a whole (IPv4) does not usually give validity to themulticast function. In general, additional apparatus/equipment isrequired in order to actually perform the multicast on the Internet.

FIG. 34 illustrates a network system that enables contents distributioncorresponding to another multicast than the above-described multicast,for example, pseudo multicast as a well-known method. In this case, thecontents are distributed to groups to which the above-describedmulticast can be applied. The network system illustrated in FIG. 34enables the digital contents distribution by forming a plurality oftunnels between a server and the plurality of groups. The server 112illustrated in FIG. 34 distributes the digital contents through thefirst network 116 such as the Internet to the wide area group Gconstructed of the groups 114 a to 114 c. The wide area group Gillustrated in FIG. 34 is constructed by including the groups 114 a to114 c. For example, business enterprises, public institutions,government bodies and educational institutions can be cited.

Concretely, if description is made by exemplifying, for example, onebusiness enterprise, then the group 114 a can be defined as a Hokkaidosales office, the group 114 c can be defined as a Kyushu sales officebelonging to the same enterprise, and so on. The server 112 illustratedin FIG. 34 distributes the digital contents in the multicast manner tothe groups 114 a to 114 c individually by use of constructions calledthe tunnels 118 a to 118 c. More specifically, the tunnels 118 a to 118c distribute multicast packets to receivers on networks at one time insuch a manner that an entry port of the tunnel between two differentnetworks and an exist port are provided, respectively and the datapackets are transferred via the entry and exit ports. As illustrated inFIG. 34, the plurality of tunnels must be prepared in accordance withthe number of groups in order to carry out the multicast distribution tothe plurality of groups.

The above-described technology of tunneling is already known in public.It is also known that the multicast distribution by the tunneling doesnot often function fully when the number of groups is numerous. It isFIG. 35 that illustrates the above more concretely. In FIG. 35, thetransmitter of the digital contents (hereinafter, referred to as a“provider”) and a large number of groups are mutually connected throughthe Internet. The groups 114 a to 114 c are connected to the firstnetwork through lines different in communication capacity, such as ISDN,ADSL, CATV and optical communication, used by the groups. Moreover, theclients in each of the groups 114 a to 114 c are mutually connectedthrough a communication infrastructure of a type varied and differentfrom others in communication capacity, for example, the second networksuch as, for example, a local area network (LAN) constructed by usingEthernet (registered trademark) and a wireless communication network.The plurality of clients 122 are mutually connected on the secondnetwork, which are then connected to the first network 116 through therouters 124 and the like. The server 112 transmits the packets to all ofthe clients 122 under such a status.

Under the status illustrated in FIG. 35, disadvantages described belowoccur in accordance with the conventional technique of performing themulticast distribution by the tunneling.

(1) Problem on Operation and Management in Group to be on the ReceivingSide:

In order to provide the ports of the tunnels to the second networks,dedicated host apparatuses are required, which are constructed to becapable of receiving the packets by the multicast and multicasting thepackets to the clients 122. Naturally, the communication to the LANinterconnecting the clients in each group depends on the function of thededicated host apparatus. Therefore, when the dedicated host comes notbe usable for some reasons, all of the clients on the second networkmanaged by the dedicated host apparatus are affected.

(2) Problem on Network Bandwidth of Contents Distribution Server:

Because the communication between the server 112 and the respectivegroups is unicast, an amount of packets transmitted by the server and anamount of the communication traffics therefor are multiplied by M if thenumber of the groups is M. Hence, unless a high capacity communicationinfrastructure is used on the server 112 side, simultaneouscommunication comes to be impossible without damaging the realtimecharacteristics as the number of groups is being increased more. Thisleads to a loss of attraction in terms of a cost merit in using themulticast.

Specifically, in the one-to-multi distribution of the digital contents,and more particularly, in the distribution of the digital contents forwhich the realtime characteristics are required, it has been necessaryheretofore to enable the distribution of the digital contents improvedin the realtime characteristics, in which the overlap of thetransmission packets on the network paths is avoided to avoid thecongestion of the traffics, the complicatedness of the individualrouters is not brought, and a change involving a large-scale investmentsuch as for work and cost of exchanging all of the routers on the pathsis not required. Moreover, it has been necessary to distribute thedigital contents without damaging the stability of the network system,in which no change is given to network layers such as the routers andswitching hubs, and further, a necessity of the reconstructioncorresponding to the frequent join and departure of the clients in thestatic minimum network is eliminated, thus reducing the overheads to theserver.

Specifically, it has been necessary to distribute the digital contentsof which realtime characteristics are secured without increasing thecomplicatedness of the network resources and the reconstructionoverheads to the server in a manner that the network imparted withredundancies is constructed in order to secure the stability ofdownstream clients and to enable the digital contents distribution tothe users securely, for example, when a client located at an upstreamrelay point is departed due to an abnormal end.

Furthermore, in the case of using the tunneling, though it is possibleto increase the number of tunnels to be constructed as the number ofgroups is being increased, this will further compress the communicationtraffics on the server side in accordance with the increase of thenumber of tunnels. Moreover, in order to prevent the above-describeddisadvantages on the server side, a method for avoiding the congestionon the server side is also conceived, in which the tunnels are alsoconstructed among the groups, and the packets are relayed thereamong ina cascaded manner. However, there occur new problems that additionalapparatus/equipment is required because the ports of the tunnels areconstructed also among the groups and that interference with a tunnel inone group fatally affect other groups because hierarchical structuresare formed among the groups. Furthermore, it is also conceived thatpackets directly sent from the server and packets sent from the othergroups in the cascaded manner are overlapped with each other. Therefore,a disadvantage occurs in reproducing the digital contents, and itbecomes necessary to eliminate the overlap of the packets in a softwaremanner. As described above, the background arts have not made itpossible to fully cope with the conventional problems in reproductionquality and in terms of software and cost.

SUMMARY OF THE INVENTION

The present invention was made in consideration of the above-describeddisadvantages. The present invention provides the digital contents inrealtime from the server to a plurality of information processingapparatuses without depending on the number of groups. When providingthe digital contents, the server divides the digital contents intopackets and transmits the divided packets through the first network toat least one client belonging to the second network. The transmittedpackets are defined as a minimum unit required for reconstructing thedigital contents. Note that, in the present invention, the packets ofthe minimum unit mean the minimum packets capable of reconstructingoriginal digital contents without the overlap of the packets. In thepresent invention, the packets of the minimum unit are referred to as“source packets” hereinafter. The client having received the sourcepackets transmit, through the second network, a copy of the receivedsource packets to clients connected to the second network. The clienthaving transmitted the copy packets receives a copy of the sourcepackets received by other clients.

The digital contents divided into the plurality of packets andtransmitted during a predetermined period are merged in the client to bereconstructed, and then provided in realtime to a user in the client. Amode for providing the contents in the present invention may include anymodes known heretofore, such as display of motion picture image data,reproduction of audio data, display of image data constructingmultimedia data and reproduction of audio data in synchronizationtherewith. The mode in the present invention will be defined below asdisplay or reproduction including the above-described providing modeswhile allowing the reconstructed digital contents to be provided, theclient receives subsequent packets, and completes reconstruction of asubsequent stream while allowing the already reconstructed digitalcontents to be provided, thus enabling the digital contents to beprovided continuously.

By repeating the above-described processing, the present invention keepson distributing the digital contents stably while avoiding the overlapof the transmitted packets, thus making it possible to flexibly copewith frequent departure and new join of the clients constructing thenetwork. Moreover, the present invention realizes a stable system, whichdoes not allow great environmental variations in the clients, such as,for example, a change in allocation status of the CPU, not to affect theefficiency of the digital contents distribution. Moreover, the presentinvention does not use the routers, switching hubs and auxiliaryservers, which are constructed especially. Thus, the present inventionfurther enables the digital contents distribution without obligingnetwork users to do work such as maintenance without increasing the costof the network system unnecessarily.

Furthermore, the present invention provides pseudo tunnelingdistribution for performing efficient distribution from the server tothe predetermined wide area group no matter whether the tunnel forperforming the distribution exists. The pseudo tunnel distribution inthe present invention means a distribution system and a distributionmethod, which enable the same digital contents to be provided smoothlyto the clients in the wide area group without causing a serious time lagjust by distributing the minimum source packets required forreconstructing the digital contents from the server to the wide areagroup without any overlap. In the pseudo tunnel distribution in thepresent invention, the server distributes the packets to the clientsbelonging to the plurality of groups without any overlap. In the presentinvention, the plurality of clients construct groups, and the pluralityof groups construct the wide area group. Moreover, the server isconstructed to be capable of transmitting the packets to the entire widearea group, and selects clients to which the packets are to betransmitted from the wide area group for each time when the servertransmits the packets. At least one client receives the source packetsconstructing the digital contents from the server. The server and theclients hold a client list of the clients constructing the wide areagroup. The client having received the source packets refers to sourcepacket distribution data or a list of preallocated copy destinations,which is received together with the source packets. Then, the clientdistributes the copy of the source packets to other clients. Byexecuting the above-described processing, all of the clients reconstructthe digital contents just enough.

Furthermore, in the present invention, the LAN in the group iseffectively used in order to make efficient use of networkcharacteristics of the clients belonging to the wide area group. Eachgroup is constructed by, for example, connecting the clients belongingto the group to one switching hub, thus enabling the communication usingthe function of the switch without affecting one another. Moreover, inthe present invention, the third network corresponding to the multicastis constructed between an application computer and the plurality ofclients connected under one router. Thus, the digital contents areshared in the group, and it is made possible to reduce the overheads ofthe clients and hardware resources.

Specifically, the present invention provides a digital contentsdistribution system for distributing digital contents through first andsecond networks, the system comprising:

-   -   a server connected to the first network and for holding therein        and transmitting digital contents; and    -   clients constructing the second network connected to the first        network and for receiving and providing the digital contents,    -   wherein the server comprises means for dividing the held digital        contents into a plurality of packets and for transmitting        packets of a minimum unit for constructing the digital contents        to the second network, and    -   wherein each of the clients constructing the second network        comprises means for making all of the clients connected to the        second network hold therein the digital contents by use of the        packets of the minimum unit, the packets having been received by        the clients from the server, and use of packets received from        other clients constructing the second network.

In the present invention, the server can comprise means for dynamicallyallocating the packets of the minimum unit to a plurality of the clientsof the second network. In the present invention, the means forallocating the packets of the minimum unit to the plurality of clientsof the second network can comprise:

-   -   means for determining overheads of the clients; and    -   means for dynamically selecting at least one of the clients as        an intermediate node in association with the overheads and for        allocating the packets to the intermediate node. In the present        invention, the means for determining overheads of the clients        can comprise means for determining a time difference between a        time when the server transmits the packets of the minimum unit        to a predetermined client and a time when the predetermined        client issues a receipt notice of the packets of the minimum        unit.

The present invention provides a digital contents distribution methodfor distributing digital contents to clients through first and secondnetworks, in which a system comprises a server connected to the firstnetwork and for transmitting the digital contents, and clientsconstructing the second network connected to the first network and forreceiving and providing the digital contents, the method comprising thesteps of:

-   -   dividing the digital contents into a plurality of packets and of        transmitting packets of a minimum unit for constructing the        digital contents from the server to the clients;    -   receiving the packets of the minimum unit from the server by the        clients constructing the second network;    -   receiving packets for reconstructing the digital contents from        other clients constructing the second network; and    -   making all of the clients connected to the second network hold        therein the digital contents by use of the packets of the        minimum unit, the packets having been transmitted from the        server, and use of the packets received from the other clients.

The present invention provides a program for executing a server processfor executing a method for distributing digital contents to adestination through first and second networks, in which a systemcomprises a server connected to the first network and for transmittingthe digital contents, and clients constructing the second networkconnected to the first network and having destinations designated forreceiving and providing the digital contents, the program making thesystem execute the steps of:

-   -   dividing the digital contents into a plurality of packets;    -   dynamically allocating packets of a minimum unit from the server        to a plurality of the destinations of the second network; and    -   transmitting the packets of the minimum unit for constructing        the digital contents from the server through the first network        to the second network,    -   wherein the step of allocating packets of a minimum unit        comprises the steps of:    -   receiving receipt notices from the destinations;    -   making the server hold the receipt notices therein;    -   selecting a destination serving as an intermediate node in        association with the held receipt notices by use thereof; and    -   allocating the packets of the minimum unit to the destination        selected as the intermediate node.

The present invention provides a computer readable recording mediumrecording therein a program for executing a server process for executinga method for distributing digital contents to a destination throughfirst and second networks, in which a system comprises a serverconnected to the first network and for transmitting the digitalcontents, and clients constructing the second network connected to thefirst network and having destinations designated for receiving andproviding the digital contents, wherein the program makes the systemexecute the steps of:

-   -   dividing the digital contents into a plurality of packets;    -   dynamically allocating packets of a minimum unit from the server        to a plurality of the destinations of the second network; and    -   transmitting the packets of the minimum unit for constructing        the digital contents from the server through the first network        to the second network, and    -   wherein the step of allocating packets of a minimum unit        comprises the steps of:    -   receiving receipt notices from the destinations;    -   making the server hold the receipt notices therein;    -   selecting a destination serving as an intermediate node in        association with the held receipt notices by use thereof; and    -   allocating the packets of the minimum unit to the destination        selected as the node.

The present invention provides a program for executing a client processfor executing a method for distributing digital contents to clientsthrough first and second networks, in which a system comprises a serverconnected to the first network and for transmitting the digitalcontents, and the clients constructing the second network connected tothe first network and for receiving and providing the digital contents,the program making the clients execute the steps of:

-   -   receiving packets of a minimum unit constructing digital        contents divided into a plurality of packets through the first        network;    -   receiving packets for reconstructing the digital contents from        other clients constructing the second network; and    -   making the clients included in the second network hold therein        the digital contents by use of the packets of the minimum unit,        the packets having been received through the first network, and        use of the packets received from the other clients.

The present invention provides a computer readable recording mediumrecording therein a program for executing a client process for executinga method for distributing digital contents to clients through first andsecond networks, in which a system comprises a server connected to thefirst network and for transmitting the digital contents, and the clientsconstructing the second network connected to the first network and forreceiving and providing the digital contents, wherein the program makesthe clients execute the steps of:

-   -   receiving packets of a minimum unit constructing digital        contents divided into a plurality of packets through the first        network;    -   receiving packets for reconstructing the digital contents from        other clients constructing the second network; and    -   making the clients included in the second network hold therein        the digital contents by use of the packets of the minimum unit,        the packets having been received through the first network, and        use of the packets received from the other clients.

The present invention provides a digital contents distribution serverconnected to a first network and for providing digital contents to asecond network connected to the first network, the server comprising:

-   -   means for dividing the digital contents into a plurality of        packets;    -   means for storing a list including destinations included in the        second network;    -   means for transmitting packets of a minimum unit for        constructing the digital contents from the server through the        first network to the second network;    -   dynamic allocation means for dynamically allocating, by use of        the list, the destinations to the second network to which the        packets of the minimum unit are transmitted;    -   means for receiving receipt notices from the destinations;    -   means for selecting a destination serving as an intermediate        node by use of the receipt notices;    -   means for transmitting the packets of the minimum unit by use of        the destination selected as the intermediate node.

The present invention provides a client for receiving digital contentsdistributed through a first network and constructing a second networkconnected to the first network, the client comprising:

-   -   means for receiving, through the first network, packets of a        minimum unit constructing digital contents divided into a        plurality of packets;    -   means for receiving packets for reconstructing the digital        contents through the second network; and    -   means for making clients included in the second network hold the        digital contents therein by use of the packets of the minimum        unit received through the first network and packets received        from other clients through the second network.

The present invention provides a digital contents distribution systemfor distributing digital contents to a predetermined wide area groupthrough first and second networks, the system comprising:

-   -   a server connected to the first network and for holding therein        and transmitting the digital contents; and    -   a plurality of groups constructed by including clients        constructing the second network connected to the first network        and for constructing the wide area group for receiving and        providing the digital contents,    -   wherein the server comprises means for dividing the held digital        contents into a plurality of packets and transmitting packets of        a minimum unit for constructing the digital contents to the        clients in the group without overlap, and    -   wherein each of the clients having received the packets of the        minimum unit comprises means for distributing copies of the        packets of the minimum unit received from the server to all of        the clients constructing a sub wide area group including the        each client and another client constructing another group.

The present invention provides a server connected to a first network andfor holding therein and distributing digital contents through the firstnetwork to a wide area group including a plurality of groups connectedthrough a second network, the server comprising:

-   -   means for creating packets of a minimum unit by dividing the        held digital contents into a plurality of packets;    -   means for selecting distribution destinations of the packets of        the minimum unit in such a manner that identical packets of the        minimum unit are not overlapped for a predetermined group; and    -   means for transmitting the packets of the minimum unit for        constructing the digital contents to clients of the selected        destinations in the group.

The present invention provides a method for controlling a computer as aserver for holding therein and distributing digital contents through afirst network to a wide area group including a plurality of groupsconnected through a second network, the method making the computerexecute the steps of:

-   -   creating packets of a minimum unit by dividing the held digital        contents into a plurality of packets;    -   selecting and registering therewith distribution destinations of        the packets of the minimum unit in such a manner that identical        packets of the minimum unit are not overlapped for a        predetermined group;    -   storing data of the selected distribution destinations as the        packets of the minimum unit; and    -   reading and transmitting, for constructing the digital contents,        the stored packets of the minimum unit to clients of the        selected distribution destinations in the group.

The present invention provides a program for controlling a computer as aserver for holding therein and distributing digital contents through afirst network to a wide area group including a plurality of groupsconnected through a second network, the program making the computerexecute the steps of:

-   -   creating packets of a minimum unit by dividing the held digital        contents into a plurality of packets;    -   selecting and registering therewith distribution destinations of        the packets of the minimum unit in such a manner that identical        packets of the minimum unit are not overlapped for a        predetermined group;    -   storing data of the selected distribution destinations as the        packets of the minimum unit; and    -   reading and transmitting, for constructing the digital contents,        the stored packets of the minimum unit to clients of the        selected distribution destinations in the group.

The present invention provides a computer readable recording mediumrecording therein a program for controlling a computer as a server forholding therein and distributing digital contents through a firstnetwork to a wide area group including a plurality of groups connectedthrough a second network, wherein the program makes the computer executethe steps of:

-   -   creating packets of a minimum unit by dividing the held digital        contents into a plurality of packets;    -   selecting and registering therewith distribution destinations of        the packets of the minimum unit in such a manner that identical        packets of the minimum unit are not overlapped for a        predetermined group;    -   storing data of the selected distribution destinations as the        packets of the minimum unit; and    -   reading and transmitting, for constructing the digital contents,        the stored packets of the minimum unit to clients of the        selected distribution destinations in the group.

The present invention provides a client connected to a second networkfor distributing digital contents through a first network and the secondnetwork to a predetermined wide area group and constructing a group ofthe wide area group, the client comprising:

-   -   means for receiving packets through any of the first and second        networks and for judging whether or not the received packets are        packets of a minimum unit for reconstructing the digital        contents; and    -   means for creating a copy packet from the received packets in        response to the judgment and for distributing the copy packet at        least to a client of another group.

The present invention provides a method for controlling a computer as aclient connected to a second network for distributing digital contentsthrough a first network and the second network to a predetermined widearea group and constructing a group of the wide area group, the methodmaking the computer execute the steps of:

-   -   receiving packets through any of the first and second networks        and storing the received packets in a memory;    -   judging whether or not the received packets are packets of a        minimum unit for reconstructing the digital contents;    -   when the received packets are judged to be the packets of the        minimum unit, creating a copy packet from the received packets        in response to the judgment and distributing the copy packet at        least to a client of another group; and    -   when the received packets are judged not to be the packets of        the minimum unit, storing the received packets in the memory.

The present invention provides a program for controlling a computer as aclient connected to a second network for distributing digital contentsthrough a first network and the second network to a predetermined widearea group and constructing a group of the wide area group, the programmaking the computer execute the steps of:

-   -   receiving packets through any of the first and second networks        and storing the received packets in a memory;    -   judging whether or not the received packets are packets of a        minimum unit for reconstructing the digital contents;    -   when the received packets are judged to be the packets of the        minimum unit, creating a copy packet from the received packets        in response to the judgment and distributing the copy packet at        least to a client of another group; and    -   when the received packets are judged not to be the packets of        the minimum unit, storing the received packets in the memory.

The present invention provides a computer readable recording mediumrecording therein a program for controlling a computer as a clientconnected to a second network for distributing digital contents througha first network and the second network to a predetermined wide areagroup and constructing a group of the wide area group, wherein theprogram makes the computer execute the steps of:

-   -   receiving packets through any of the first and second networks        and storing the received packets in a memory;    -   judging whether or not the received packets are packets of a        minimum unit for reconstructing the digital contents;    -   when the received packets are judged to be the packets of the        minimum unit, creating a copy packet from the received packets        in response to the judgment and for distributing the copy packet        at least to a client of another group; and    -   when the received packets are judged not to be the packets of        the minimum unit, storing the received packets in the memory.

The present invention provides an on-network digital contents sharingmethod for sharing predetermined digital contents in clients connectedthrough a plurality of networks, in which the predetermined digitalcontents are converted into a plurality of continuous stream data, andpackets of a minimum unit necessary to reconstruct the predetermineddigital contents are transmitted from a server through the networks, themethod comprising the steps of:

-   -   selecting the clients requiring distribution of the        predetermined digital contents by reading a client list;    -   transmitting the packets of the minimum unit to the selected        clients;    -   making the clients having received the packets of the minimum        unit store the packets of the minimum unit in memories thereof,        create copy packets and distribute the copy packets to other        clients except for the clients having received the packets;    -   storing the copy packets received from the other clients in the        memories; and    -   making users share the predetermined distributed digital        contents by reconstructing the packets in the memories.

BRIEF DESCRIPTION OF THE DRAWINGS

For a more complete understanding of the present invention and theadvantages thereof, reference is now made to the following descriptiontaken in conjunction with the accompanying drawings.

FIG. 1 is a schematic diagram illustrating a digital contentsdistribution system of the present invention.

FIG. 2 is schematic diagrams of path tree structures constructed in thepresent invention.

FIG. 3 is a diagram schematically illustrating processing of sourcepacket transmission from a server and copy packet transmission ofclients.

FIG. 4 is diagrams illustrating embodiments of cases of dynamicallyselecting clients serving as intermediate nodes in the presentinvention.

FIG. 5 is a diagram illustrating traffics of packetstransmitted/received to/from the clients according to the presentinvention.

FIG. 6 is a schematic diagram of a case of dynamically selecting aclient as an intermediate node in the present invention.

FIG. 7 is a diagram illustrating processing of servers in a case where anew client is added to a group #1 in the present invention.

FIG. 8 is a diagram illustrating processing for the newly joining clientbased on a newly created path tree structure.

FIG. 9 is a functional block diagram illustrating a construction of theclient in the present invention.

FIG. 10 is a functional block diagram illustrating a construction of theserver of the present invention.

FIG. 11 is diagrams illustrating embodiments of a source packet usablein the present invention.

FIG. 12 is a table showing an embodiment of a client list used by theserver in the present invention.

FIG. 13 is a diagram illustrating an embodiment of the path treestructure of the present invention, which is selected by the server.

FIG. 14 is a diagram illustrating a second embodiment of the digitalcontents distribution system of the present invention.

FIG. 15 is block diagrams illustrating constructions of a source serverand a client, which are illustrated in FIG. 14.

FIG. 16 is a diagram illustrating communication of source packetsbetween the server and clients of the present invention in time series.

FIG. 17 is a diagram illustrating transmission of the source packets andcopy packets between the clients selected as the intermediate nodes inthe present invention among the clients and the server in time series.

FIG. 18 is a flowchart illustrating processing of the client of thepresent invention.

FIG. 19( a) is a flowchart of copy processing in the present invention,and FIG. 19( b) is a flowchart illustrating processing of the server ina case where unexpected departure of a client occurs and a case where aserious failure in the concerned client is detected.

FIG. 20 is a diagram illustrating another embodiment of the digitalcontents distribution system of the present invention.

FIG. 21 is a diagram illustrating still another embodiment of thedigital contents distribution system of the present invention.

FIG. 22 is a diagram illustrating yet another embodiment of the presentinvention, which enables load reduction for a server on a wirelessnetwork.

FIG. 23 is a block diagram illustrating a construction of the digitalcontents distribution system of the present invention.

FIG. 24 is diagrams illustrating other embodiments of the source packetusable in the present invention.

FIG. 25 is a flowchart of a process executing contents distribution ofthe present invention.

FIG. 26 is a flowchart illustrating processing of the server and theclient in a case of executing the contents distribution of the presentinvention.

FIG. 27 is a diagram schematically illustrating flows of source packetsand copy packets distributed by the contents distribution of the presentinvention.

FIG. 28 is a diagram illustrating yet another embodiment of the contentsdistribution system of the present invention.

FIG. 29 is a diagram illustrating yet another embodiment of the contentsdistribution system of the present invention.

FIG. 30 is a diagram illustrating yet another embodiment of the contentsdistribution system of the present invention.

FIG. 31 is a schematic diagram of a conventional IP multicast method.

FIG. 32 is a schematic diagram of digital contents distribution using aconventional application-level multicast method.

FIG. 33 is a schematic diagram of a digital contents distribution systemof a conventional construction for connecting a client to an edgeserver.

FIG. 34 is a schematic diagram illustrating digital contentsdistribution using a conventional multicast tunneling.

FIG. 35 is a schematic diagram illustrating a communication trafficenvironment in the digital contents distribution using the conventionalmulticast tunneling.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

Although the present invention will be described below based on concreteembodiments, the embodiments to be described below do not limit thepresent invention.

A: Digital Contents Distribution System

FIG. 1 is a schematic diagram illustrating the digital contentsdistribution system 10 of the present invention. The digital contentsdistribution system 10 of the present invention is constructed byincluding the server 14 connected to the network 12 and the plurality ofclients 20 connected individually to the network 12 through networkdevices such as the routers 16 and the switching hubs 18. As the network12 illustrated in FIG. 1, a network such as the Internet, WAN and LANcan be given. As a communication medium for constructing the network, apublic telephone line, ISDN, ADSL, optical communication, ground wavewireless communication, satellite communication and the like can beused. In accordance with the present invention, the server 14distributes digital contents to the clients 20 through the networks 12and 22. As the digital contents distributed in the present invention,moving picture image data in conformity with MPEG2, MPEG4, ahigher-order standard, or the like can be cited, which is included incontents necessary to be provided to the plurality of clientssimultaneously with realtime characteristics. Moreover, as the digitalcontents in the present invention, it is also possible to use multimediadata constructed by including plural types of digital data such asmoving picture image data, audio data and text data, besides the movingpicture image data.

Moreover, the clients 20 are connected to the network 12 through therouters 16 and the switching hubs 18 and the like, and are identified asa predetermined group #1 and the like by the server 14 by means ofidentifiers, for example, such as IP addresses allocated for each router16. Moreover, the clients in the predetermined group construct thenetwork 22 set by peer to peer connection in the preferred embodiment ofthe present invention. Thus, mutual communications among the clients inthe group are enabled.

It is possible to construct the server 14 usable in the presentinvention of a personal computer or a workstation. As such a personalcomputer or a workstation, there can be cited a personal computer or aworkstation, which is capable of mounting thereon a CPU such as PENTIUM(registered trademark) or a CPU compatible therewith, and capable ofoperating an operating system such as WINDOWS (registered trademark),WINDOWS (registered trademark) NT (Microsoft Corporation), OS/2(trademark: International Business Machines Corporation), AIX(trademark: International Business Machines Corporation), UNIX andLINUX. However, the server 14 is not limited to these.

Moreover, as the clients 20 usable in the present invention, thepersonal computers or workstations that can be applied to theabove-described server 14 can be given. Moreover, the clients 20 can beconstructed by including a notebook personal computer, a PDA and thelike, which are connected through a wireless network, if such a computerand a PDA have processing speeds sufficient to be applied with thepresent invention.

The digital contents distribution system 10 of the present invention,which is illustrated in FIG. 1, is constructed in such a manner thatmoving picture image data is decomposed into a plurality of streams, onestream is further divided into a plurality of packets, and each packetis transmitted as a source packet from the server 14 to a predeterminedclient 20. In the present invention, the source packet constructing thestream is transmitted to at least one client included in a given group.The client having received the source packet transmits copies of thereceived packet (hereinafter, referred to as “copy packets”) to otherclients included in the given group. The downstream clients havingreceived the copy packets accumulate the copy packets during apredetermined period, and after the elapse of the predetermined period,reconstruct the stream by use of packet identifiers added as serialnumbers to the packets, for example. Then the digital contents aredisplayed or reproduced in the clients. Specifically, in the presentinvention, the server 14 enables the same digital contents to beprovided to the clients belonging to the predetermined group withouttransmitting packets, which are overlapped in one group, to the clients.

B: Digital Contents Distribution Method

The method for executing the digital contents distribution of thepresent invention will be further described below in detail.

<B-1> Dynamic Routing Based on Temporal Selection in Packet Unit ofStatic Path Tree Structure

As described above, in the present invention, for example, for m piecesof clients included in one group, a path tree structure is constructed,in which the server 14 is set as a root, and one client 20 a isdesignated as an intermediate node by the server 14. FIG. 2( a)schematically illustrates a path tree structure constructed in thepresent invention. As illustrated in FIG. 2( a), the tree structure of1:1:(m−1) in the constructed tree structure constructs one transmissionpath of the packets. For the sake of description convenience, in thisspecification, it is assumed that the paths are formed to have atwo-stage structure, which includes a first-stage path between theserver and the intermediate node, and second-stage paths between theintermediate node and the clients, and that there is no relay exceedingsuch two stages.

As illustrated in FIG. 2( a), the server 14 selects the one client 20 ain the group as the intermediate node, and first transmits the sourcepacket to the client 20 a selected as the intermediate node. The client20 a that has received the source packet and functions as theintermediate node transmits the received packet to the clients 20 b to20 e included in the group, thus making it possible to share the packetin the group. Moreover, in the present invention, the client 20 a set asthe intermediate node is not limited to one as illustrated in FIG. 2(a). The server 14 monitors effective throughputs of the respectiveclients through the network 12 in conformity with connection-orientedprotocol such as TCP/IP, and thus the client 20 can be dynamicallyselected from one or more clients. The selection of the intermediatenode in the present invention will be described later in detail.

If all of the paths (in tree structure) from the server 14 to therespective clients 20 a to 20 e, which are illustrated in FIG. 2( a),are superposed on one another, then it is possible to describe acomplete graph having lines connected from the server 14 to therespective clients 20 a to 20 e and further connected interactivelybetween each two clients in a predetermined group. FIG. 2( b)illustrates an embodiment of a complete graph formed between the server14 and the respective clients 20 a to 20 e in the specific embodimentillustrated in FIG. 2( a). As illustrated in FIG. 2( b), it can beconceived that path selection per packet unit is selection of a partialtree structure (in path tree structure) from the complete graph.According to the present invention, it is possible to flexibly selectthe paths in accordance with the throughputs of the clients.Accordingly, in the path tree structure, each client will be dynamicallymoved to an upstream or downstream of the other clients.

The present invention will be described with reference to the completegraph in the specific embodiment of the present invention, which isillustrated in FIG. 2( b). First, source packets for one stream aretransmitted from the server 14 to the group including the clients 20 ato 20 e without overlapped packets. The respective clients 20 a to 20 ereceive the source packets constructing a part of the stream without anyoverlap. Thereafter, the clients belonging to the same group mutuallycopy short packets as the copy packets, and thus compensate the shortamount of the packets for reconstructing one stream to recover the onestream. In the present invention, the above-described function of theclients is referred to as peer-to-Group type distribution. Note that theserial numbers are previously added as the packet identifiers to therespective packets in accordance with streaming protocol. Thus, astructure is adopted, in which a packet order in the short packets andstream can be recovered in each client. As a method for the above, anymethod known heretofore can be used. Concretely, for example, a methoddisclosed by Schulzrinne, et al. can be adopted (H. Schulzrinne, S.Casner, R. Frederick, and V. Jacobson. RFC 1889: RTP: A TransportProtocol for real-time applications, January 1996.).

FIG. 3 schematically illustrates the above-described transmissionprocessing of the source packets from the server 14 and of the copypackets among the clients in the group #1. As illustrated in FIG. 3, themoving picture image data acquired in the server 14 is streamed anddivided into the plurality of packets. For example, the packetidentifiers P1 to P5 are added to the respective source packets. In thepresent invention, no particular limitations are imposed on the size ofthe source packets illustrated in FIG. 3, and the source packets may bemade into any size. A stream 24 divided into the source packets P1 to P5is transmitted to the group #1 through the first network such as, forexample, the Internet, or LAN and WAN which are belonging to differentdomains.

In the specific embodiment illustrated in FIG. 3, the respective clients20 a to 20 e are defined to have throughputs approximately equal to oneanother as will be described later. The embodiment is illustrated, inwhich the clients 20 a to 20 e are selected as the intermediate nodesindividually, and the source packets P1 to P5 are transmitted to theclients 20 a to 20 e, respectively.

Here, the function of the client 20 a having received the packet P1 willbe described in detail. Member lists, each corresponding to the clientsbelonging to the group #1, are included in the clients 20 a to 20 e. Thecopy packets are transmitted to the other clients 20 b to 20 e byexecuting, for example, broadcast communication, with reference to themember lists in accordance with any known protocol, for example,communication protocol such as TCP/IP, UDP and a promise cast mode, inthe group. Moreover, in the present invention, in the event oftransmitting the copy packets, the copy packets can also be transmittedto the attentions of the respective IP addresses of the other clientsmore securely immediately after the arrival of the source packets or ata fixed time interval. The transmission method usable in the presentinvention can be appropriately selected in consideration of the numberof clients constructing the predetermined group, cost, reliability andthe like. The other clients 20 b to 20 e receive the copy packets fromthe client 20 a and accumulate the copy packets in receiving buffers.Besides the client 20 a, the other clients 20 b to 20 e also execute thesimilar transmission of the copy packets. The respective clientsaccumulate the copy packets in the receiving buffers for a predeterminedperiod for which processing for the subsequent stream can be guaranteednot to be affected, for example, for about one second or less.

In an embodiment in which addresses in the receiving buffer of theclient 20 a are designated so as to correspond to the packetidentifiers, after the elapse of the predetermined period, the sourcepackets for one stream are accumulated therein in order of “P1P2P3P4P5,”for example. It is made possible for the client 20 a to reconstruct thepackets and copy packets accumulated for the predetermined period asmoving picture image data for one stream, that is, “P1P2P3P4P5” by useof an FEC decoder a source decoder, and the like. Moreover, as long asno particular disadvantage occurs, it is also possible to record thepackets not necessarily in accordance with the serial number but in areceiving order, and then to sort the packets and reconstruct the imagedata.

FIG. 4 is a diagram illustrating an embodiment of the present inventionin the case where a client serving as the intermediate node isdynamically selected. In the present invention, the server 14 and theclients 20 construct a network by use of connection-oriented protocolsuch as TCP. As illustrated in FIG. 4( a), though described in moredetail later, the server 14 monitors the throughputs of the respectiveclients and selects a client probabilistically in accordance with thethroughputs. The client having the maximum throughput is not alwaysselected. Then, the selected client 20 b is set as the firstintermediate node, to which the first source packet P1 is thentransmitted. Moreover, the server 14 monitors throughput changes of theclients continuously at an interval of, for example, around severalseconds or less, and dynamically selects the intermediate node fromclients having small overheads at each point of time. For example, theembodiment shown in FIG. 4( b) illustrates that the client 20 d has theminimum overhead at that point of time, and therefore, that the client20 d is selected as the intermediate node by the server 14, and receivesa source packet, for example, the source packet P3.

With the above-described construction being adopted, according to thepresent invention, it is made possible to allow all of the clients inthe group #1 to hold the digital contents just by transmitting thesource packets for one stream without transmitting the packetsoverlapped for the clients constructing the group #1 by the server 14.Specifically, the present invention enables a load concentratedheretofore on the server 14 in the event of transmitting the packets tothe clients included in the group #1 to be dispersed to the entirenetwork. Thus, the present invention enables the efficiency of thenetwork including the server 14 to be improved. Simultaneously, thepresent invention enables traffic scalability in the network to beimproved.

<B-2> Network Scalability

A communication traffic volume between the server 14 and the clients 20in the construction of the present invention will be examined below.FIG. 5 illustrates traffics of the packets transmitted/received to/fromthe clients 20 a in accordance with the present invention. It is assumedthat n packets are transmitted from the server 14 to the respectiveclients uniformly for a unit time. n/m source packets are sent out fromthe server 14 to the client 20 a, and the client 20 a receives thesource packets sent out from the server 14. The client having receivedthe packets relays the received packets to m−1 clients (distribution ofcopy packets). Simultaneously, the client 20 a receives the copy packetsfrom the other clients. From a viewpoint of the network, these copypackets are identical to the packets sent out from the other clients.Therefore, communication of (n/m+n/m×(m−1)=n) packets is generated for aunit time per client. In this communication traffic volume, the numberof packets is not changed as compared with the case of the conventionalexample of using the construction of the conventional edge server. Theabove-described packet transmission volume is established even in thecase where the clients are not selected uniformly.

Next, in terms of number, packets required to be subjected toinput/output processing per unit time by the respective clients are npackets in total for the input processing, which is obtained by addingtogether n/m packets from the server 14 and {n/m×(m−1)} packets from theother clients, and {n/m×(m−1)} packets for the output processing, whichis obtained when n/m source packets are relayed to the clients, in theuniform selection. Therefore, the number of packets subjected to be theinput/output processing is given by {n×(2m−1)/m} [packets]. Hence, thepackets are n packets at the minimum (m=1), and do not exceed 2n packetsat the maximum (m→∞A). Specifically, even if the number of clients isincreased, the load on each client just gets closer to the load for the2n packets gradually, and does not exceed the same, thus causing nooverflow problem of the load in each client. Meanwhile, the server 14must do work of selecting one client for each packet from the m piecesof clients. The number of this client selection processing isproportional to the number m of the clients, and the number of packettransmissions never depends on the number of clients. Hence, ever if thenumber of clients is increased, no disadvantage occurs in the digitalcontents distribution of the present invention with regard to thenetwork scalability.

Subsequently, the case opposite to the uniform selection is also assumedin the present invention. Specifically, the case is also assumed, whereonly one client receives all of the source packets from the server 14.Also in this case, the number of input packets to the clients is notchanged from the conventional case because the input packets are for astream, and n source packets are inputted to the selected client.Moreover, the output of the copy packets from the client having receivedthe source packets is summed up to n×m packets only in that client. Inthis case, though the load is increased only in the selected client, noserious problem occurs in the digital contents distribution from theserver 14 to the group since only the broadcast traffic in the group isincreased. Furthermore, in the present invention, it is preferable todynamically select the path tree structure so that the selection in thiscase can be as approximate as possible to the uniform selection so asnot to transmit the source packets biasedly only to the above-describedsingle client. Simultaneously, it is also possible to perform thereconstruction for keeping the network system stable by dynamicallyselecting the path tree structure. The above-described dynamic selectionof the path tree structure will be described later in detail. Note that,in order to prevent the local increase of the sent packets due to theununiformity of the selection, limitations may be provided on thetransmission speed of the copy packets and the time of the transmissionprocessing, and packets exceeding the limitations may be broken.

<B-3> Dynamic Selection (Dynamic Optimizing)

In the path tree structure in the present invention, one or pluralclients are not fixed and statically used but dynamically selected fromthe clients. In the path tree structure selection, the path treestructure transmitting the packets is dynamically constructed under thefollowing conditions:

-   (a) the concerned client is ready to receive the packets;-   (b) priority is given to a path selecting, as an intermediate node,    a client having a small round-trip time (RTT) seen from the server,    that is, a path selecting a client having a small processing    overhead; and-   (c) priority is given to a path having, as an intermediate node, a    client of which copy rate of packets is high.

It is possible to realize validation processing for the above-describedcondition (a) by use of the connection-oriented protocol such as TCP.Moreover, measurement of RTT described in the condition (b) will bedescribed by use of, for example, the format of IPv4 in the case wherethe server 14 sends out the source packets. For the measurement, a timemay be previously recorded in an IP header portion of a sourcetransmission packet, and a client having received the source packet mayreturn only the IP header portion as it is to the server. Alternatively,a time may be recorded by use of and in an original header generatedseparately in an application level, and this original header may returnas it is to the server. As described above, it is possible to use amethod utilizing a difference between the time recorded in the IP headerand the like and the time returned to the server 14. Moreover, a timewhen the server 14 transmits a source packet may be previously stored,and a response packet from a client may be received, thus making itpossible to read and validate the time of the IP header of the responsepacket.

In the case of utilizing TCP, a time including time taken for resendingprocessing in the concerned hierarchy, that is, a throughput is observedin association with RTT. Note that, for the measurement of RTT, anaverage of several observations can also be utilized for the purpose ofabsorbing a fluctuation of the measurement value.

Moreover, the copy rate described as the condition (c) utilizes a packettransmission success rate from an intermediate client to clientsdownstream thereof. In the network using connection-oriented protocolsuch as TCP, a cause of variation of the copy rate includes the casewhere the intermediate client breaks the packets due to the timelimitations, and so on. When the clients are mutually connected inconformity with UDP, the copy rate is calculated from an arrival rate ofthe packets to the downstream clients.

In the specific embodiment of the present invention, in order to satisfythe above-described conditions, clients meeting the condition (a) areselected so that the source packets can be transmitted thereto at apredetermined ratio. FIG. 6 is a schematic diagram illustrating the caseof dynamically selecting a client as an intermediate node in the presentinvention. As illustrated in FIG. 6, the server 14 selects the client 20e as an intermediate node and transmits the source packets thereto. Forexample, the client 20 e can be selected as a client that returns aresponse first at that point of time, in response to a start of thedigital contents distribution from the server 14. For example, otherclients than the client 20 e are not selected for the reasons that theseother clients execute other processing, these other clients have notresponded to the server 14 for a predetermined threshold value time, andtheir RTTs have been slower, for example, than a set threshold value incomparison with that of the client 20 e.

In the embodiment illustrated in FIG. 6, the server 14 judges the client20 e to have a sufficient processing capability and sets the client 20 eas an intermediate node receiving the source packets. The client 20 ehaving received the source packets transmits the copy packets to otherclients in the group #1 by use, for example, of the broadcastcommunication.

In the present invention, the client having the smallest RTT is selectedas the intermediate node. Furthermore, besides the above, allocationweight can also be imparted among the clients in association with RTTsas will be described below. For example, in the most preferredembodiment of the present invention, adoptable allocation weight can begiven based on the following relational expression.

[Equation 1]

$\begin{matrix}{{{{Allocation}{\mspace{11mu}\;}{weight}\mspace{14mu}{of}{\mspace{11mu}\;}{source}\mspace{14mu}{packet}} \propto \frac{t_{k}r_{k}}{\sum\limits_{i = 1}^{m}{t_{k}r_{k}}}}{t_{k}:{{throughput} \propto {1/{RTT}}}}{r_{k}:{{copy}{\mspace{11mu}\;}{rate}}}} & \left\lbrack {{Equation}\mspace{14mu} 1} \right\rbrack\end{matrix}$

In the above relational expression, t_(k)r_(k) is proportional to asubstantial throughput, that is, the number of packets processible bythe client per unit time. Hence, in this allocation method, to maximizethe effective throughputs, that is, to maximize the stability is set asa target function. Note that, in the present invention, theabove-described conditions can be applied for each source packet.Moreover, in the present invention, the allocation weight of the sourcepackets can be updated periodically at a predetermined time interval.Clients that cannot receive the packets at each point of time areexcluded from candidates for the path selection. Therefore, even ifthere is an error in allocation weight, there does not occur a serioussituation such as a loss of the source packets. Moreover, in anotherembodiment of the present invention, the effective through-puts can bealso judged by use only of RTT.

<B-4> Dynamic Reconstruction

Furthermore, the present invention automatically copes with an increaseof a new client in the case where such a new client is added to thegroup recognized by the server, thus making it possible to flexibly copewith a change of the network construction.

FIG. 7 illustrates processing of the serve 14 when the new client isadded to the group #1 in the present invention. As illustrated in FIG.7, when the new client 20 f is added into the group #1, the client 20 ftransmits a JOIN request to the server 14 by use, for example, of the IPaddress of the server 14, which is acquired from another client. TheJOIN request can be made to include a client identifier such as an IPaddress acquired by the newly joining client 20 f or allocated thereto.

Upon receiving the JOIN request, the server 14 adds the clientidentifier of the client 20 f to the client list of the group #1 held inthe server 14 and used as a destination list. In the embodimentillustrated in FIG. 7, the server 14 sends out NEW MEMBER notificationsnotifying the addition of the new client to the clients 20 a to 20 dincluded in the group #1 by use, for example, of the broadcastcommunication to the attentions of the IP addresses of the group #1. Theclients 20 a to 20 c in the group #1, which received the NEW MEMBERnotifications, update the member lists and register the new client 20 fas a distribution destination of the copy packets.

Subsequently, the server 14 transmits, to the newly joining client 20 f,a CONNECT request indicating that the connection thereof is completed.In the embodiment illustrated in FIG. 7, client identifierscorresponding to the client members constructing the group #1 held inthe server 14 can be included in the CONNECT request. The client 20 freceives the CONNECT request and updates the member list. Note that, forthis operation, for example, the automatic IP address acquisition methoddescribed in Japanese Patent Application No. 2002-088702, which belongsto the same applicants, can be used. In the case where theabove-described automatic IP address acquisition method disclosed inJapanese Patent Application No. 2002-088702 can be used, it may not benecessary to transmit the NEW MEMBER notifications from the server tothe respective clients 20 a to 20 f because the member lists are alreadyheld thereby.

After the above-described processing, the server 14 becomes able tojudge a path including the newly joining client 20 f in the path treestructure for performing the digital contents distribution. In thespecific embodiment of the present invention, a construction can beadopted, in which the client 20 f is added to the lowermost stream ofthe prepared path tree structure immediately after the client 20 f joinsthe group, and the client 20 f acquires the copy packets from the otherclients 20 a to 20 c. The new path tree structure including the client20 f is constructed at a path selection after the elapse of apredetermined period in monitoring the RTT.

Note that, in the present invention, the performance of the newlyjoining client 20 f is unknown at an initial stage, and therefore, forexample, as shown in the following equation, large RTT can be previouslyimparted as an initial value (large value) to the client 20 f, and afrequency of receiving the source packets can be previously lowered. Fora judgment for the above, it is possible to use balancing including aso-called forgetting factor that lowers the weight of the past actualresults gradually. In the present invention, it is preferable to applythe dynamic construction method of the present invention thereafter atthe point of time when the so-called “actual result” of the newlyjoining client becomes obvious in terms of securing the stability of thenetwork. Thus, the effectiveness of the present invention can be furtherimproved.

FIG. 8 illustrates that, based on the newly created path tree structure,the source packet is transmitted from the server 14 to the newly joiningclient 20 f, and the copy packets are transmitted thereto from the otherclients 20 a to 20 c.

Moreover, in the present invention, when a joining client is departed,the server 14 can get to know the departure of the client through theconnection-oriented network. Note that, though departure of a client canbe detected even if the client ends abnormally, an event occurs, whichis a case where a network cable is detached cannot be detected untiltime-out of the client. In the present invention, even if the time-outoccurs, the source packet is not sent to the client in accordance with arule of dynamic selection (confirmation of receiving enable/disable).Therefore, there does not occur a disadvantage in which packets to bereceived by the other clients are lost all at once.

The server 14 having recognized the departure of the join clientimmediately breaks the path tree structure having the concerned clientas an intermediate node, and prevents the loss of the source packet. Theclients having remained in the group #1 can distribute the receivedsource packet in accordance with the member lists. In the case where theremaining clients transmit the copy packets on the basis of thebroadcast communication, the clients can transmit the copy packets toall of the clients in the group #1, which can receive the copy packets.Moreover, the remaining clients cancel the connections between each andthe departed client, thus making it possible to delete the departedclients from the lowermost streams of all of the path tree structures.

Moreover, some of the source packets transmitted to the departed clientmay not sometimes be relayed but be broken at the same time of thedeparture. In order to prevent such a packet loss accompanied with theclient departure, the server 14 can use processing in which some ofchronically new packets sent to the respective clients are previouslyrecorded, and packets sent to the departed client are resent to theother clients at the point of time when the departed client is detected.

In the present invention, with the above-described construction beingadopted, the server and the clients automatically add, delete and changelocally the path tree structure, and thus reconstruct the group by thejoin and departure of the clients. Moreover, the recently transmittedpackets are recorded and resent according to needs, thus making itpossible to prevent the packet loss caused by the sudden departure.

FIG. 9 is a functional block diagram illustrating the construction ofthe client 20 described in the present invention. The client 20 isconnected to the second network 22 through the network interface card(NIC) 30. Furthermore, the client 20 is constructed by including thereceiving buffer 32, the memory 34 and the memory 36 such as RAM. Thereceiving buffer 32 holds the received source packets and copy packetsduring a period before reconstructing the stream of the moving pictureimage data.

In the present invention, the receiving buffer 32 can be constructed asa ring buffer that writes the received packet to the addresscorresponding to the packet identifier for each time of receiving thepacket. Moreover, the client 20 is constructed by including the centralprocessing unit (CPU) 36, the source decoder 38 and the FEC decoder 40.However, the FEC decoder 40 is not always necessary in the presentinvention. The CPU 36 is driven in synchronization with a clock, readsthe packets accumulated in the receiving buffer 32 for eachpredetermined period, sends the packets to the source decoder 38 and theFEC decoder 40, and reconstructs the moving picture image data for onestream. The reconstructed moving picture image data for one stream isdisplayed or reproduced on the display 42 to be provided to a user ofthe client.

The moving picture image data displayed or reproduced for the user canbe deleted from the client 20. Alternatively, the entire stream from thestart of the digital contents to the end thereof can be held in thememory 34, and can be stored in the storage device 44 such as a harddisk, a magneto-optical disk and a magnetic tape. In the storage device44, for example, the member list constructed by including the clientidentifiers for identifying the clients constructing the group #1 can bestored. The member list is read into the memory 36 of the client fromthe storage device 44 at the boot of the client, and is held as aresident file. When the client illustrated in FIG. 9 receives the sourcepacket, the client 20 refers to the member list and designatesdestinations to which the copy packets are distributed. Moreover, whenthe client 20 performs, in accordance with the TCP/IP protocol, thebroadcast communication for the copy packet to, for example,abc,def.ghi.255, set as the destination in the format of IPv4, it is notnecessary to directly refer to the above-described member list.

FIG. 10 is a diagram illustrating the construction of the server 14 ofthe present invention. The server 14 illustrated in FIG. 10 is connectedto the network 12 through the communication means 46 such as a modem, aDSU, or the network interface card, and distributes the digital contentsto the clients (not shown). Hereinafter, function of the server 14 ofthe present invention will be described starting from the acquisition ofthe digital contents.

To the server 14 illustrated in FIG. 10, the imaging means 48 such as adigital video camera is connected, in which digital data desired to bedistributed as digital contents, for example, a program, a lecturemeeting, a greeting, an education program and the like are recorded in arecording medium. The recorded digital data is acquired into the server14 through an appropriate interface, and is held in, for example, thestorage device 50. It is preferable to construct the digital data in thepresent invention as multi-media data including the above-describedmoving picture image data. When the digital contents are transmitted toa client, the CPU 52 first reads the digital contents from the storagedevice 50, and sends the read digital contents to the source encoder 54and the FEC encoder 56. The source encoder 54 and the FEC encoder 56,which have received the digital data, perform streaming processing forthe digital data, and further divide one stream into packets of apredetermined size, for example, packets P1 to P5. The created packetsP1 to P5 distribute the digital contents through the communication means46 to, for example, the group #1.

Because the connection-oriented network protocol is established betweenthe server 14 and the client 20, the RTT is already monitored, at leastweight in response to the RTT is allocated, and a client is selected asan intermediate node in accordance with the allocation weight. Theserver 14 transmits the source packet to the client as the selectedintermediate node and distributes the digital contents thereto. FIG. 11explains the case of illustrating the construction of the embodiment ofthe source packet 58 usable in the present invention by use of an IPheader. As illustrated in FIG. 11( a), the source packet 58 transmittedfrom the server 14 is constructed by including, for example, the IPheader 58 a, and the IP header 58 a is constructed by including atransmission address and the destination address 58 b. Furthermore, thesource packet 58 includes the packet 58 c of the digital data to bedistributed, the packet identifier 58 d added as a serial number, forexample P1, the transmission time 58 e when the source packet istransmitted, and the like. In the present invention, the above-describedpacket 58 c, the packet identifier 58 d and the transmission time 58 ecan be constructed as an original packet created in the applicationlevel. Moreover, the IP header 58 a includes IP version information, atransmission source IP address and the like, and is constructed toenable the server 14 to judge the RTT based on a reply from the client.In the case of transmitting the source packet 58 illustrated in FIG. 11(a), the server 14 can also monitor the time of transmitting a sourcepacket, for example, the packet P1 by a timer and the like.

A response packet from the client having received the source packet P1is returned to the server 14 through the network 12, is once accumulatedin an appropriate storage unit in the server 14, and reads a time whenthe client transmits the response packet from a time recorded in, forexample, a transmission time added to the response packet. FIG. 11( b)illustrates the embodiment of the construction of the response packet 60from the client. As illustrated in FIG. 11( b), the response packet 60includes the IP header 60 a. As described above, this IP header 60 aincludes the transmission source address and the destination address 60b. Furthermore, the response packet 60 is constructed by including thepacket identifier 60 c of the received digital data, the time 60 d whenthe client issues the response packet 60, and the packet transmissiontime 58 e when the source packet P1 is transmitted. In the IP header 60a, the time when the client transmits the response packet 60, thetransmission source IP address of the transmission source client and thelike are recorded.

In the present invention, upon receiving the response packet 60, theserver 14 judges the response packet 60 to be a response packetcorresponding to the receiving of the source packet 54 by use of anidentifier included commonly in the source packet 58 and the responsepacket 60, that is, the packet identifier P1 in the embodimentillustrated in FIG. 11. In the specific embodiment of the presentinvention, the server 14 calculates the RTT by use of the transmissiontime 58 e and the issuance time 60 d, and judges the effectivethroughput of the client by use of 1/RTT and the copy rate. The judgedeffective throughput is, for example, balanced for a fixed period, andthen used to update the client list shown in FIG. 12. Moreover, inanother embodiment of the present invention, in the case where a time isrecorded in the IP header, the time recorded in the IP header can bedirectly used.

FIG. 12 is a table showing the embodiment of the client list 62 used bythe server 14 in the present invention. The client list 62 shown in FIG.12 is constructed by including the group identifiers 62 a registeredwhen the server 14 distributes the digital contents, the clientaddresses 62 b of the clients included in given groups, and theeffective throughputs 62 c balanced for predetermined periods. Forexample, when the digital contents are distributed, contents providerssuch as a television station, a satellite broadcast station, and anevent provider can prepare the group identifiers 62 a by registrationsfrom users and the like. Moreover, when the server 14 distributes thedigital contents through intranets of business enterprises,administrative organs, judicial organs, legislative organs, educationalinstitutions, libraries and the like without being particularly limitedto the contents provider, addresses allocated for each group of thebusiness enterprises or the organs, for example, the IP addresses can beused.

Moreover, for the client addresses 62 b, the IP addresses and the like,which are allocated to specific groups, can be used in the specificembodiment of the present invention. The effective throughputs 62 cshown in FIG. 12 are essential parameters in the present invention,which are used for the above-described allocation weighting. In thepresent invention, the above-described weighting is balanced at, forexample, around one second time interval for the purpose of preventingunnecessary variations and stabilizing the path tree structure to securethe stability/reliability of the network and of flexibly coping withvariations of the overheads in response to the departure and join of theclients or the processing status. This weighting is updated periodicallyas the effective throughputs. The effective throughputs 62 c shown inFIG. 12 are denoted by #1Ta to #1Te as values corresponding, forexample, to the clients 20 a to 20 e included in the group #1.

Here, if it is assumed that the clients 20 b and 20 c are selected asintermediate nodes and that the ratio of the weight allocated thereto is3:2, then the path tree structure illustrated in FIG. 13 is formed inthe server 14. The server 14 transmits, for example, the source packetsP1 to P3 to the client 20 b and the source packets P4 and P5 to theclient 20 c in accordance with the weighting. The transmitted sourcepackets are transmitted as the copy packets cP1 to cP5 from the clients20 b and 20 c selected as the intermediate nodes to the other clientsincluded in the group #1. Then, the copy packets cP1 to cP5 areaccumulated in the receiving buffers of the respective clients, andthen, after being accumulated for a predetermined period, used forreconstructing one stream. Note that, in another embodiment of thepresent invention, the transmitted source packets can be divided in anyother numerical ratio and transmitted to the intermediate nodes. C:Another embodiment of digital contents distribution system

FIG. 14 is a diagram illustrating the second embodiment of the digitalcontents distribution system of the present invention. The digitalcontents distribution system illustrated in FIG. 14 is constructed byincluding the source server 64 for crating the digital contents, thedrain server 66 held in the source server 64 and for extracting andholding digital data subjected to the streaming processing, and thegroups G#1, G#2 and G#3 connected through the network 12. A constructionis adopted, in which a client included in each group is selected as anintermediate node and distribute the digital contents in the group inaccordance with the present invention.

FIG. 15 is a block diagram illustrating constructions of the sourceserver 64 and one client, which are illustrated in FIG. 14. Asillustrated in FIG. 15( a), the source server creates streamed digitalcontents from the created digital data by use of the source decoder 64 aand the FEC encoder 64 b. The created packets are transmitted to thedrain server 66, edited into n pieces of the source packets necessaryfor the present invention in the drain server 66, and transmitted to theclients through the network 12. Moreover, FIG. 15( b) illustrates theconstruction and processing of the client. The client 20 receives thecopy packets, and after accumulating the copy packets for apredetermined period, reconstructs the digital contents for one streamby use of the FEC decoder 38 and the source decoder 40. Then the client20 provides the digital contents to the user. Simultaneously, the client20 a selected as the intermediate node copies the received sourcepackets, and transmits the packets as copy packets to the other clients.

D: Source Packet Communication Protocol in Digital Contents Distribution

FIG. 16 is a diagram illustrating the communication of the sourcepackets between the server and the clients of the present invention intime series. The source packets are sent out from the server to any ofthe clients at a fixed interval. The client having received the packetsreturns the response packets Ack (acknowledgement) to the server. Theclient is constructed to report the success rate of the copy (copy rate)to the server periodically (for example, at every one second). Asdescribed above, the period from each time when the packet is sent outto each time when the server receives the response packet Ack is used asthe RTT (Round-Trip Time) for determining the allocation weight of theintermediate node in the path tree structure.

FIG. 17 is a diagram illustrating, in time series, the transmission ofthe source packets and the copy packets among the server and the clientsselected as the intermediate nodes in the present invention. The clienta having received the source packets P1 and P2 from the server transmitsthe copy packets #1 and #2 of the packets P1 and P2 to the client b inthe same group. The success rate (copy rate) in this case is reported tothe server periodically. Moreover, the server sends the packet P3 to theclient b, and the client b transmits the copy packet #3 to the client a.At this point of time, the client a holds the packets P1 to P3 in thereceiving buffer. The above-described process is sequentially repeated,and the packets for one stream are accumulated.

FIG. 18 is a flowchart illustrating the processing of the client of thepresent invention. The client selected as the intermediate node isalways set on standby for receiving the source packets, and monitorsarrival of the packet in Step S100. Upon receiving the packet, theclient calculates a storage location in the receiving buffer from thepacket identifier of the received packet in Step S102. In Step S104, itis judged whether or not the location in the buffer is empty. If empty(yes), then the packet having a number corresponding to the location hasnot been received yet. Therefore, the received packet is written intothe corresponding location of the receiving buffer in Step S112.Subsequently, in Step S114, it is judged whether or not the receivedpacket is a source packet, for example, whether or not the source packethas been received by use of the transmission source address included inthe IP header. If the source packet has been received (yes), then theprocessing proceeds to Step S116, where copy processing is reserved inorder to transmit the copy packets to the other clients in the group.The reservation of the copy processing can be performed by, for example,registering the copy of the received packet with a suitable FIFO buffer.After the end of the reservation of the copy processing, the processingreturns to Step S100, and the client is on standby for receiving thepacket.

On the other hand, if the corresponding buffer address is judged not tobe empty (no) in Step S104, then the packet having the correspondingpacket identifier has already been received. Therefore, in Step S106, itis judged whether or not the packet with the corresponding identifier isalready reserved so as to be subjected to the copy processing. If thereservation is registered (yes), then the reservation registration isdeleted in Step S108 because overwrite will cause the source packet tobe erased. Then, a copy failure counter is incremented in Step S110. InStep S112, a packet received at that point of time is overwritten intothe corresponding buffer location. This corresponds to arrival of asubsequent packet before the client transmits the copy of the sourcepacket. This also corresponds to the extinguishment of the packet. Ifthe reservation is not registered for the packet so as to be subjectedto the copy processing (no), then the processing proceeds to Step S112,where the packet is overwritten into the corresponding buffer addressbecause the packet is a copy packet. Then, the processing from S114through S100 is repeated.

FIG. 19( a) is a flowchart illustrating the copy processing in thepresent invention. In Step S120 in the copy processing illustrated inFIG. 19, the client is on standby until a source packet requiring thecopy processing is registered therewith. When the source packet isregistered, if the registration is made, for example, by use of the FIFObuffer in the described embodiment, then a packet previously registeredis selected in Step S122. In Step S124, the client copies the selectedpacket to make the copy packets, and performs the broadcastcommunication for the copy packets to the other clients, or transmitsthe copy packets individually to the other clients with reference to thedestination IP addresses. Thereafter, a copy success counter isincremented in Step S128, the processing returns to Step S120, and theclient is on standby. A ratio of the count of the above-described copysuccess counter to the total count of the copy success counter and copyfailure counter is transmitted as the copy rate to the server. There isadopted a construction capable of preventing the disadvantages in thedigital contents distribution by processing such as retransmission ofthe packets for one stream, the disadvantages being caused by lostpackets, if this copy rate is too low.

FIG. 19( b) is a flowchart illustrating processing of the server ifunexpected departure of the client occurs or if there is a seriousfailure detected in the concerned client. In Step S130, the serveralways monitors the effective throughput of the client through the RTTand the copy rate. For example, if the server does not receive aresponse packet for a predetermined threshold period, the server judgesthat the departure or the failure occurs in the client. Thereafter, theprocessing proceeds to Step S132, and the server selects source packetstransmitted for a period corresponding to the predetermined thresholdvalue from the source packets transmitted to the concerned client. Then,the server reregisters the selected source packets with the head of thesent-out source packet list of the server, and transmits thereregistered source packets to the other clients. Thus, a constructionis adopted, which prevents the extinguishment of the source packets.

FIG. 20 is a diagram illustrating another more concrete embodiment ofthe digital contents distribution system of the present invention.Concretely, the embodiment illustrated in FIG. 20 is an embodiment ofthe case where the present invention is applied to in-house broadcast ofa lecture meeting or the like by use of an in-house intranet. In theembodiment illustrated in FIG. 20, the in-house intranet is constructedto mutually connect the end routers 70 located in the respectivesections through the network 72 such as the Ethernet (registeredtrademark) or a fiber channel by use of the backbone routers 74. Undereach end router 70, the clients 20 constructed of, for example,approximately one hundred personal computers are subjected to thepeer-to-peer connection to construct the second network 76. In theembodiment described with reference to FIG. 20, a network havingapproximately 3,000 pieces of the clients 20 in total is constructed.For example, if the server 78 transmits packets to all of the clientsunder the construction illustrated in FIG. 20, even if a backbone routerhaving a bandwidth of, for example, 1 Gbps is used as the backbonerouter 74, the server 78 cannot smoothly transmit moving picture imagedata requiring a transmission speed of 8 Mbps. For example, digitalcontents distribution in a size of a digital versatile disk (DVD) isimpossible by a conventional method. If the packet overlap avoidance ofthe present invention is not used, even if the network has one hundredpieces of the clients, the users cannot receive the digital contentsdistribution in realtime.

The present invention is applied to this system. Accordingly, if theclients 20 form the second network through the same switching hub by theEthernet (registered trademark) of, for example, 100 Mbps, then, as thecommunication speed by the peer-to-peer connection among the clients, athroughput ranging from 40 to 50 Mbps is expected. Therefore, no problemoccurs in transmission/receiving, for example, of data at 8 Mbps inMPEG4. On the other hand, if the clients are connected to different endrouters, it is more efficient to divide the clients into differentgroups. However, in this case, the server 78 transmits streams by thenumber of groups. If there are thirty end routers, each connecting onehundred PCs thereunder, groups can be allocated for each end router.

In this case, data for thirty streams will be transmitted from theserver 78 directly connected to the backbone router 74 while consuming athroughput of 240 Mbps. In the embodiment illustrated in FIG. 20, as theclients 20, the personal computers grouped under the end routers 70 canalways join or depart from a network including data of the video andaudio of the lecture meeting. Moreover, clients having relatively lowperformances are always located downstream of the path tree structure inthe packet transmission, thus making it possible to avoid the adverseeffect to the other clients. Note that, though the sever manages thethree hundred pieces of clients as objects to be selected for paths inthis case, it has been possible to perform the realtime digital contentsdistribution sufficiently by one server.

FIG. 21 is a diagram illustrating still another more concrete embodimentof the present invention. In this embodiment, the plurality of clients20 simultaneously receive digital contents from the server 14 located onthe Internet in accordance with the present invention. In the embodimentillustrated in FIG. 21, the Internet forms the first network 12, and thesecond network 22 corresponds to, for example, an intranet connectedthrough the router 16 to the Internet. It is seen from the Internet thatthe in-house intranet is a well-managed network with a wide bandwidthand a small fluctuation in throughput. When the server 14 is located onthe Internet, if the group is constructed of the clients belonging tothe intranet, the clients can simultaneously receive, for example, themoving picture image/data video of 1 Mbps while preventing the packetoverlap on the Internet without any special edge server. In the caseillustrated in FIG. 21, it has been confirmed that a communication speedof 2 Mbps may be satisfactory as the communication speed required forthe clients.

FIG. 22 is a diagram illustrating yet another embodiment of the presentinvention, which enables load reduction for servers on a wirelessnetwork. In the embodiment of the present invention, which isillustrated in FIG. 22, the processing of the server 14 is onlytransmission of streams in accordance with the number of groups anddynamic path selection. Therefore, in comparison with the conventionalcase, the overhead given to the server will be able to be reduced. Forexample, the load on the client 20 may sometimes be larger than that onthe server 14 because the reproduction of the image data in MPEG2 orMPEG4 requires extremely large CPU resources. Moreover, the server 14transmits only one stream to the group constructed of the clients 20.Therefore, even if the server 14 located on the wireless network hassmall CPU resources, the server 14 can simultaneously distribute streamsin MPEG4, for example, at 384 kbps, to the plurality of clients on theintranet connected through the wireless network.

E: Digital Contents Distribution System Executing Pseudo TunnelDistribution that Performs Digital Contents Distribution

FIG. 23 illustrates a digital contents distribution system enablingpseudo tunnel distribution in the present invention. The digitalcontents distribution system 80 illustrated in FIG. 23 is constructed byincluding the server 82 for receiving digital contents from atransmitter and holding the contents therein, and the clients 86belonging to the groups 84 a to 84 c constructed by including theplurality of clients 86. The server 82 and the groups 84 a to 84 c aremutually connected via the routers 88 through the first network such asthe Internet. Moreover, the clients 86 belonging to each group aremutually connected through LAN constructed therein, thus making itpossible to share the data and perform information communication. Notethat the number of groups illustrated in FIG. 23 is not particularlylimited to that number illustrated therein in the present invention, orthe number of clients is not particularly limited to the numberillustrated therein, either. Moreover, as well known by those skilled inthe art, a variety of servers such as a printer server and a mail servermay be connected to the groups. The respective groups construct thelarger wide area group G1, and the wide area groups G2 and G3constructed similarly are connected to the first network 12. Note that,though the digital contents can also be distributed to the wide areagroups G2 and G3 from the server 82, different servers can be used foreach groups.

The function of the contents distribution system 80 illustrated in FIG.23 will be described in detail. First, from a transmitter server managedby a provider, the server 82 receives digital contents to bedistributed. Alternatively, the provider inputs the digital contents tothe server 82 in a moving picture or text format. Thus, the digitalcontents are held in the storage means 90 such as a hard disk. Moreover,when multimedia data is directly inputted from a video camera to theserver 82, the digital contents are held in an appropriate buffer memory(not shown) and the like included in the server 82.

The held digital contents are subjected to the streaming processing inthe server 82, divided into a plurality of segments, and created assource packets. The created source packets are transmitted to a client86 selected by use of the execution throughput and the like inaccordance with the method of the present invention. As illustrated inFIG. 23, upon receiving the source packets, the client 86 executes thecopy of the source packets in the group or among the groups, thus makingit possible to share the digital contents in the entire wide area group.

Moreover, each of the clients 86 includes an application, for example,such as Windows Multimedia Player (trademark) for reproducing thedigital contents, and executes the reproduction processing for thedigital contents accumulated in the buffer memory thereof, thus makingit possible to provide the digital contents to the user. In theembodiment illustrated in FIG. 23, the application is included in eachof the clients, and the digital contents are accumulated in each of theclients 86. In the present invention, the pseudo tunnel distribution canbe executed in the server 82 by describing, to the source packets, datafor executing the packet copy in the group or among the groups.Moreover, in yet another embodiment, a construction can also be made, inwhich lists of copy destinations selected from the client list arepreviously stored in the clients, the receiving of the source packets isjudged, the lists of copy destinations are referred to, and the copypackets are transmitted.

FIG. 24 illustrates embodiments of source packets created for executingthe pseudo tunnel distribution in the present invention. The sourcepacket 92 illustrated in FIG. 24( a) is constructed by including thetransmission time description area 92 a, the packet identifierdescription area 92 b, the packet identifier being added to the sourcepacket, the copy instruction flag areas 92 c and 92 d for instructingthe packet copies to be executed in the group and among the groupsrespectively, and the data packet description area 92 e constructed ofthe substantial data of the digital contents.

The transmission time description area 92 a can convert the time whenthe server first sends out the packets into an arbitrary formatrecognizable by the clients and the server. The transmission timedescription area 92 a is utilized for the case where the server 82measures the response time of each client, that is, the executionthroughput in order to determine the client to which each packet istransmitted. Moreover, the packet identifier description area 92 b is anarea for recording therein a serial number added to the source packetsent out by the server 82, and is utilized for the case where the clientreconstructs the time-series order of the source packets.

The copy instruction flag area 92 c is an area in which a true/falseflag indicating whether or not the copy in the group is to be performedis described. The client executes the processing of transmitting thecopies of the received packets of which flags are true in these areas toall of the clients in the group. The copy instruction flag area 92 d isan area in which a true/false flag indicating whether or not the copyamong the groups is to be performed is described. The client executesthe processing of transmitting the packet of which flag is true to oneof the clients in each of the other groups in the wide area group. Thedata packet description area 92 d is an area in which the substantialdata of the digital contents to be transmitted by the server 82 andreproduced by the client 86 is described. Note that, in the presentinvention, other additional elements may be added before, after andamong these elements, or an order of these elements may be changed.Moreover, a part of the elements may be omitted depending on the case.Moreover, as illustrated in FIG. 11, the source packet 92 is constructedby including the transmission source IP address and the destination IPaddress designating the destination to which the source packet 92 istransmitted, though no illustrated.

FIG. 24( b) illustrates the second embodiment of the source packetcreated in the contents distribution server 82 of the present invention.In the embodiment illustrated in FIG. 24( b), the source packet itselfis made to include the list of the clients to which the copies of thepacket are to be transmitted, and thus the distribution destinations aredesignated in more detail. In this case, the server 82 describes, in thesource packet 92, the list of the destinations to which the copies areto be transmitted with reference to the client list held by the serveritself. Moreover, the source packet 92 illustrated in FIG. 24( b)includes the transmission time description area 92 a and the packetidentifier description area 92 b, which have a function of allowing theclient to execute a similar function to that described with reference toFIG. 24( a). Moreover, the source packet 92 illustrated in FIG. 24( b)is provided with the copy instruction data area 92 f designating thecopy destinations designated by the server 82. When the client judges tohave received the source packet, the client reads the copy instructiondata area 92 f, and executes processing described below.

The value N_dest described in the copy instruction data area 92 fdesignates a list length of the destination to which the copy is to betransmitted. For the values Dest1 to DestN, client identifiers such asIP addresses designating the clients to which the copy packets are to betransmitted can be used. For example, if the group to which the clientitself belongs is designated in the copy instruction data area 92 f,then the client transmits the copies of the source packet only to theclients in the group. Meanwhile, if a value designating the transmissionof the copy packets to the other groups, for example, IP addressescorresponding to the other groups and the like are designated in thecopy instruction data area 92 f, then the client transmits the copies ofthe source packet to the clients in the designated groups. The datapacket description area 92 e is similar to that described with referenceto FIG. 24( a).

FIG. 24( c) is a diagram illustrating the third embodiment of the sourcepacket 92 for use in the present invention. The embodiment illustratedin FIG. 24( c) is made for the case where the destinations of the copypackets are originally obvious and description thereof is not necessary.In this case, the client previously selects the copy destinations fromthe client list stored in the storage means such as a memory and a harddisk, and selects clients in other groups, which have addressesallocated in a range that is not overlapped with the other clients, thusmaking it possible to prepare the copy destination list. Moreover, inthe case of distributing the copy packets in the group in the embodimentof FIG. 24( c), the distribution thereof can be performed by executingthe broadcast communication in the group. Furthermore, in anotherembodiment, a construction can be previously adopted, in which theclient transmits the copy packets to the other clients in the group, andtransmits each copy of the received source packet to one clientbelonging to each of the other groups in the wide area group. The sourcepacket illustrated in FIG. 24 and usable in this embodiment isconstructed of the transmission time description area 92 a, the packetidentifier description area 92 b and the data packet description area 92e, and includes no distribution destinations of the copy packets. Asdescribed above, the client distributes the copy packets to the clientslisted in the copy destination list or the clients previouslydesignated.

FIG. 25 is a flowchart illustrating a process executed by the server forthe pseudo tunnel distribution of the present invention. In the pseudotunnel distribution of the present invention, in Step S130, the serverjudges whether or not a new client joins the group by monitoring anotice (Join request) transmitted from the client. If the server findsthe newly joining client (yes), then, in Step S132, the serverpreviously allocates a smallish value for the execution throughput ofthe newly joining client, and prevents a large amount of source packetsfrom being suddenly transmitted to the newly joining client inconsideration of actual results on and after. Subsequently, in StepS134, the server adds the concerned client to the client list, thusenabling the digital contents to be distributed thereto. Here, theidentification of the client can be performed by means of an identifierallocated to the client, for example, the IP address, a name of theclient arbitrarily added to the client or the like. In step S136, theserver notifies the join of the new client to the wide area group andthe identifier such as the IP address thereof to all of the clients inthe wide area group, which includes the newly joining client. The clienthaving received the notice stores a new list in the hard disk or thesuitable memory. The communication in this case can be executed by useof the pseudo tunnel distribution of the present invention.Alternatively, the communication can be performed by use of any knownmethod because the transmitted data amount is relatively small incomparison with the multimedia data, the image data and the like. By theabove-described process, it is made possible for the server and theclients to own the same newest client lists.

FIG. 26 is a flowchart illustrating a process between the server and aclient in the processing performing the digital contents distribution.If the provider instructs the server to perform the digital contentsdistribution, then, in Step S140, the server refers to the client list,selects a client having the largest execution throughput or the smallestround-trip time (RTT), and transmits the first source packet to theconcerned client with reference to the IP address thereof and the like.In this case, the same source packet is distributed to only one clientamong the clients belonging to the wide area group in the simplestembodiment of the pseudo tunnel distribution method of the presentinvention.

The client receives the packet in Step S142, and in Step S144, judgeswhether or not the received packet is the source packet from the server.The judgment whether or not the packet is the source packet can beperformed, for example, based on whether or not the packet includes thetransmission source address, the copy instruction flag, the copyinstruction data area, which are included in the source packet.Moreover, in the present invention, the copy of the source packet can beprepared in any format as long as the packet can be judged to be thecopy packet. Moreover, because the IP address allocated to the server isusually set as a fixed IP address, the judgment for the source packet,which can be utilized most universally, can be performed by use of thetransmission source IP address in the packet. If the packet is judged tobe the source packet (yes) in the judgment of Step S144, then the clienttransmits the copy of the source packet to the pre-registereddistribution destination with reference to the distribution destinationdescribed in the source packet in Step S146, or reference to the copydestination list in the case of the embodiment using the source packetillustrated in FIG. 24( c). In this case, the transmission of the copypacket is executed including two processes. Specifically, (i) the clienttransmits the copy packets to all of the clients belonging to the groupto which the client having received the source packet belongs; and (ii)the client transmits the copy packet to each one selected client in eachof the groups to which the client having received the source packetsdoes not belong. It can be previously set as to which of the clients areto be selected. Alternatively, the RTT of the client to which the copypacket is to be transmitted is previously monitored by suitable criteriaand technique, a client having a small response time is dynamicallyselected similarly to the contents distribution server, and the copypacket can be transmitted thereto.

If the received packet is judged not to be the source packet (no) in thejudgment of Step S144, then the packet is a packet to be stored by thereceiving client. Therefore, in Step S148, the client accumulates thereceived copy packet in the ring buffer and the like, and starts theprocessing for reproducing the digital contents. Then, the processingreturns to step S142, and is repeated for the next packet.

FIG. 27 is a diagram schematically illustrating the above-describedprocessing of the packet transmission/receiving between the server andthe clients. As illustrated in FIG. 27, the client a belongs to thegroup SG_(i) constructing the wide area group denoted by the referencecode G, and the groups SG_(i) to SG_(m) (1≦i≦m) exist in the wide areagroup G. The client a transmits the copies of the source packet receivedfrom the server 82 to all of the clients belonging to the group SG_(i)and to one client b of each of the other (m−1) groups.

The method illustrated in FIGS. 26 and 27 enables the clients includedin the wide area group G to receive the packets from the server 82, theclients in the other groups and the clients in the same groups. As aresult of this, the server can distribute, to all of the clients, all ofthe packets for reconstructing the digital contents without transmittingthe overlapped digital contents as in the conventional case oftransmitting the source packets as the minimum units for reconstructingthe digital contents by constructing the tunnels for each group.Furthermore, in the pseudo tunnel distribution of the present invention,the source packets are not transmitted in an overlapped manner.Therefore, it is made possible to avoid the overlap of the packets inthe client completely. Accordingly, there occurs no problem on theoverlap of the packets in the client and on the processing of theoverlapped packets accompanied therewith, thus making it possible todistribute the digital contents smoothly.

Moreover, after accumulating predetermined amounts of the source andcopy packets in the ring buffer, the client provides these packets tothe application, and provides the digital contents to the user.

In the pseudo tunnel distribution of the present invention, the digitalcontents distribution is enabled without compressing the communicationbandwidths of all of the server, groups and clients. The packetstransmitted from the server to the wide area group are for one set. Seenfrom each group, the received packets are for one set including thesource packet and the copy packets, and the transmitted packets are forone set or less in average per unit group. Even seen from each client,similarly, the received packets are for one set, and the transmittedpackets are for one set or less in average. Here, the number of all ofthe clients included in the wide area group is redefined as m, and thenumber of groups constructing the wide area group is redefined as M. Inthis case, if the numbers of connected clients in the groups areapproximately equal to one another, then each client statisticallyreceives 1/m source packets of one set, copies the received sourcepackets to (m/M−1) clients in the group, and further distributes thecopy packets to the other (M-1) groups. Here, if thetransmission/receiving amounts of the packets for one client areschematically calculated, then the following equation is obtained.((m/M−1)+(M−1))/M=(m+M^2+2M)/mM  [Equation 3]

In the above-described equation, mM−(m+M^2+2M)=(m−M)(M−2)+m>0.Therefore, the following relationship is established.(m+M^2+2M)/mM<1  [Equation 4]

Moreover, according to the present invention, even if the join anddeparture of part of the clients occur, and even if part of the clientsabnormally end for some reasons, the rest of the clients can keep onnormally receiving the digital contents. In the present invention, theplurality of tunnels are not provided between the server and the groups,but the peer-to-group type tunnels are provided between the server andthe large number of dispersed clients, thus making it possible to impartthe robustness to the entire system.

Note that, in the above-described embodiments, each of the clients hasbeen described on the premise that a pair of the digital contents andthe application for reproducing the digital contents is held therein. Inthe present invention, though the client and the application can beoperated on the same computer, the applications can share the digitalcontents as will be described later more in detail, which are notlimited to the above-described embodiments. Moreover, the servercreating the digital contents and the server performing the streamingprocessing therefor and transmitting the source packets can be operatedon the same computer or can be constructed as separate servers. If theseare constructed as computers separate from each other, the communicationbetween the provider and the servers may be multicast or unicast usingthe communication protocol such as UDP and TCP. In this point, unlikethe so-called multicast tunnel, the present invention makes it possibleto give, between the server and the clients, a similar effect to themulticast even if the IP multicast is never used.

FIG. 28 is a diagram illustrating timing of the packettransmission/receiving between the server and the clients. Asillustrated in FIG. 28, the server transmits the source packet #1 to theclient #1 at the time t1. The client #1 having received the sourcepacket #1 transmits, to the server, the signal “Ack” notifying that thesource packet has been received. The server receives the signal “Ack” atthe time t2, calculates a time difference (t2−t1) therebetween, andupdates the execution throughput of the client in the client list, whichcorrespond to the client #1.

Upon receiving the source packet #1, the client #1 creates the copypacket immediately. Then, at the time t3, the client #1 transmits thecopy packet #1 to a client in the group to which the client #1 belongs,that is, the client #2 in the embodiment illustrated in FIG. 28.Simultaneously, the client #1 transmits the copy packet #1 to the client#3 belonging to another group. The client #2 receives the copy packet #1at the time t4, and the client #3 receives the copy packet #1 at thetime t5. The client #3 transmits, to the client #1, the signal “Ack2”notifying that the copy packet #1 has been received. At the time t6, thesignal “Ack2” is received by the client #1. The client #1 calculates theexecution throughput in the group, for example, as the time difference(t6−t3), and updates the corresponding client list. Furthermore, theclient #3 transmits the copy packet #1 to the client #4 in the samegroup. Here, the reason why the round-trip time is not calculated in thegroup is that the copy packet #1 must be transmitted in the groupwithout selecting the clients. Moreover, as described later in thepresent invention, when the communication bandwidths are greatlydifferent among the respective groups, the time when the servertransmits the source packet is stored, the time when the Ack signal isreceived from the destination client is measured, and then these timescan be employed as criteria for judging the execution throughput.

FIG. 29 is a diagram illustrating another embodiment of the pseudotunnel distribution system of the present invention. In the networkusing the communication infra-structure such as ADSL and CATV, thebandwidths of the receiving/transmission (downlink/uplink) becomeasymmetric. The embodiment illustrated in FIG. 29 is a effectiveembodiment in the case where the uplink bandwidth is designed to benarrow in the network on the client side. In the embodiment illustratedin FIG. 29, when the server transmits the source packets, the servertransmits at least one unit of source packets to the plurality ofclients. In the case illustrated in FIG. 29, the clients can beindividually selected from the ones belonging to the separate groups inorder from, for example, a client having a smaller round-trip time(RTT). Moreover, for the source packets transmitted to the plurality ofclients, the source packet construction illustrated in FIG. 24( b) canbe used, and the direct instruction can be made as to which client ofwhich group the source packets are to be copied to.

The processing executed by the clients illustrated in FIG. 29 will bedescribed. One client having received the source packet #i transmits thecopy packet to another group to which the same source packet #i has notbeen sent yet. In such a manner as described above, the disadvantagecaused by the distribution of the copy packets corresponding to the samesource packet to the same group can be eliminated. Moreover, theaddresses of the groups to which the same source packets #i have beensent can be described into the source packets #i, and the copy packetscan be transmitted to groups excluding the groups of which addresseshave been described. Furthermore, by use of the pseudo tunneldistribution illustrated in FIG. 29, the communication amounts among thegroups can be reduced, and the amount of uplink packets can also bereduced. Meanwhile, seen from the server, the load on the server isincreased because there arises the necessity of transmitting the samesource packets to the plurality of clients. In the present invention, anoptimal method can be selected from the above-described methods inconsideration of the above-described tradeoff and the characteristics ofthe communication infrastructure for use. Moreover, the digital contentscan be distributed by use of the plurality of methods in combination inaccordance with a time zone.

FIG. 30 is a diagram illustrating still another embodiment of the pseudotunnel distribution system of the present invention. In the embodimentillustrated in FIG. 30, the copy packets are not transmitted/receivedamong the clients in the group. In the embodiment illustrated in FIG.30, the packets are not directly sent from the clients to theapplication, but the clients transmit the received packets by thebroadcast or local LAN multicast referred to as the third network. Inthe embodiment illustrated in FIG. 30, the application is stored inanother computer 94, and for the purpose of reproducing the digitalcontents, the computer 94 storing the application therein is connectedto the client 86 through the third network 96 to acquire necessarypackets. Then, the computer 94 reproduces the digital contents. Any of awireless network and the Ethernet (registered trademark) is permitted asthe second network 22 connecting the clients in the group. However, asthe third network for use in the embodiment of the present invention,which is illustrated in FIG. 30, a network having a different purposefrom the second network, for example, using the Ethernet (registeredtrademark) and the like, can be set. In the embodiment illustrated inFIG. 30, the computer 94 storing the application therein can receive thepackets updated by all of the clients 86 in the group on the thirdnetwork every time and can reproduce the stream. Therefore, the digitalcontents can be smoothly reproduced without any excess or deficiency.

Moreover, the embodiment illustrated in FIG. 30 means that theapplication can receive the packets even if a one-to-one relationship isnot established with the client. However, it is necessary that one ormore clients operate on the third network 96. In this case, the client86 can construct the pseudo tunnel even if the client 86 does notacquire all of the packets and store the packets therein, thus enablingthe digital contents distribution while enabling the reduction of thecommunication traffic amount and the saving of the hardware resources onthe client side.

As described above, according to the present invention, the path isdynamically optimized in a packet unit in the one-to-multi digital mediadistribution, thus the network system becomes difficult to be affectedby the join and departure of the client, and the client can join ordepart from the network at any time. Moreover, the system is difficultto be affected also by the departure of the client due to the abnormalend and the disconnection of a cable, thus making it possible to improvethe stability thereof. Furthermore, the loads on the clients arebasically dispersed uniformly, and the receiving function operates asthe entire wide area group (dispersive cooperativeness), and therefore,a special auxiliary server is not required. Thus, the complicatedness ofthe network system as noted from a viewpoint of autonomy is avoided, andthus a simple system construction easy to be maintained can be realized.

Moreover, the update processing reflecting the join and departure of theclient is localized, and the overhead thereof is always made small. Insuch a manner, the load on the server is reduced to a great extent, andthus even a computer allowed to be equipped with only resourcesequivalent to/less than that of the client can be made to function asthe server.

Furthermore, according to the present invention, for the predeterminedwide area group including the plurality of groups, which are mutuallyconnected through the network, and each of which is constructed byincluding the plurality of clients, it is made possible to provide adigital contents distribution system enabling smooth and efficientdistribution of the digital contents while reducing the overhead of thecommunication traffic to the server. Furthermore, it is made possible toprovide a server and clients for the system, a control method forallowing computers to function as the above-described server andclients, a program for the method, and a computer readable recordingmedium recording the program therein.

Note that, to the present invention, the conventional advantages in theIP multicast and the application-level multicast, for example,properties such as avoidance of congestion by efficient use of thenetwork accompanied with the packet distribution in an unoverlappedmanner and such as nonnecessity of costly substitution work in thenetwork layers are succeeded as they are without being lost. Thus, it ismade possible to perform excellent digital contents distribution.Moreover, in the present invention, each of the second networks can beconstructed by including, for example, servers such as a printer server,a mail server and an appliance server.

Means or a part that realizes the above-described functions of thepresent invention can be constructed as software or a group of softwaremodules described in a computer-executable program language, and doesnot always have to be constructed as a functional block illustrated in adrawing.

The above-described program for executing the digital contentsdistribution of the present invention can be described by use of avariety of programming languages, for example, C language, C++ language,Java (registered trademark) and the like. Codes describing the programof the present invention can be held in a computer readable recordingmedium such as a magnetic tape, a flexible disk, a hard disk, a compactdisk (CD), a magneto-optical disk, and digital versatile disk (DVD).

As above, the present invention has been described by the concreteembodiments described with reference to the drawings. However, thepresent invention is not limited to the above-described specificembodiments, and even for various modification examples and otherembodiments, any known constituent components within the range exertingthe effect of the present invention can be used.

Although the preferred embodiments of the present invention have beendescribed in detail, it should be understood that various changes,substitutions and alternations can be made therein without departingfrom spirit and scope of the inventions as defined by the appendedclaims.

1. A digital contents distribution server providing digital contents toa second network, the server comprising: a connection to a firstnetwork, said first network for holding and transmitting the digitalcontents to a plurality of clients in the second network, wherein saidclients in the second network are grouped into client groups that aremutually connected to the second network through lines different incommunication capacity; and a central processor unit configured fordividing the digital contents into a plurality of packets; wherein thepackets are defined as a minimum unit required for reconstructing thedigital contents; a storage device storing an updatable list of clientdestinations located in the second network, wherein said updatable listcomprises client group identifiers for identifying which clients belongto which client group; and wherein the server adds and removes theclient destinations from the updatable list responsive to said clientdestinations joining or leaving their respective client group; thecentral processor unit further configured for transmitting the packetsto the first network wherein copies of said packets are thentransmitted, through the second network to a selected client group; thecentral processor unit further configured for dynamically allocating, byuse of the updatable list, the selected client group in the secondnetwork to which the packets are transmitted; a receiver configured forreceiving receipt notices from the listed destinations; the centralprocessor unit further configured for dynamically selecting at least oneclient destination, from the updatable list of client destinations,serving as an intermediate node for the selected client group, by use ofthe receipt notices; and the central processor unit further configuredfor transmitting the packets to the intermediate node, wherein thepackets mean the minimum packets capable of reconstructing originaldigital contents without the overlap of the packets; wherein the centralprocessor unit further transmits to the intermediate node informationcomprising source packet distribution data and a list of the clientswithin the client group to which the intermediate node belongs; andwherein the intermediate node refers to the transmitted information fordistributing copies of the packets to other clients in the selectedclient group for reconstructing the digital contents from the packetcopies.
 2. The server of claim 1, wherein the central processor unit isfurther configured for: registering, with the server, a time when theserver transmits the packets to a predetermined destination;registering, with the server, a time when a client having thepredetermined destination issues the receipt notice of the packets; andcalculating a time difference between the transmission time and thereceipt notice issuance time.
 3. The server according to claim 1,wherein the central processor unit is further configured for dynamicallyupdating the updatable list of client in association with a change of aconstruction of the second network.
 4. A client for receiving digitalcontents distributed through a first network in a second networkconnected to the first network, the client comprising: a receivingbuffer that writes a received packet to an address corresponding to apacket identifier of the received packet for each time of receiving thepacket and configured for: receiving, through the first network,dynamically allocated packets of a minimum unit for constructing digitalcontents divided into a plurality of packets, wherein the packets of theminimum unit comprise a minimum number of packets capable ofreconstructing original digital contents without an overlap of thepackets; wherein the packets for reconstructing the digital contents arereceived by a dynamically selected intermediate node within a clientgroup in the second network; wherein the clients in the second networkare grouped into client groups that are mutually connected to the secondnetwork through lines different in communication capacity; and a centralprocessor unit configured for distributing to other clients within theclient group in the second network copies of the packets of the minimumunit received through the first network and packets received from otherclients through the second network.
 5. The client according to claim 4,wherein the central processor unit is further configured for preparing areceipt notice which comprises a time of receiving the packets of theminimum unit.
 6. The client according to claim 4, wherein the centralprocessor unit is further configured for identifying the packets of theminimum unit from the packets received from the other clients.
 7. Theclient according to claim 4, further comprising: an updatable list ofmembers constructing the second network; and wherein the centralprocessor unit is further configured for updating the updatable list inany of cases where a client is added to and deleted from the secondnetwork.
 8. A digital contents distribution system configured fordistributing digital contents, the system comprising: a servercomprising a central processing unit, connected to a first network andconfigured for holding therein and transmitting the digital contents; afirst network and a second network comprising a plurality of clientgroups connected to the first network through lines different incommunication capacity, wherein each client group represents a wide areanetwork; and the plurality of client groups constructed by includingclients constructing the second network connected to the first networkand for constructing the wide area group for receiving and providing thedigital contents wherein one of the clients in the second network isdynamically selected as an intermediate node for receiving a packet fromthe server and transmitting the received packet to other clients in theclient group, and wherein the server is configured for dividing the helddigital contents into a plurality of packets and transmitting packets ofa minimum unit for constructing the digital contents to the intermediatenode by dynamically allocating the packets without overlap, and whereinthe intermediate node distributes copies of the packets of the minimumunit received from the server to all of the clients constructing theclient group to which the intermediate node belongs, using an updatablelist comprising: client group identifiers for identifying which clientsbelong to which client group; and a client list of the clientsconstructing the wide area network group within the second network, eachclient receiving the packets referring to source packet distributiondata or a list of pre-allocated copy destinations, which is receivedtogether with said packets of a minimum unit for constructing digitalcontents; and wherein the packets of the minimum unit mean the minimumnumber of packets capable of reconstructing original digital contentswithout the overlap of the packets.
 9. A server connected to a firstnetwork for distributing digital contents, the server comprising: aninterface configured to acquire the digital contents; a storage devicefor holding therein the digital contents; wherein the storage devicealso stores an updatable list of client destinations located in a secondnetwork, wherein said updatable list comprises client group identifiersfor identifying which clients belong to which client group; and whereinthe server adds and removes the client destinations from the updatablelist responsive to said client destinations joining or leaving theirrespective client group; a central processor unit configured for:reading the digital contents from the storage device; creating packetsof a minimum unit by dividing the digital contents into a plurality ofpackets, wherein the packets of the minimum unit comprise the minimumnumber of packets capable of reconstructing original digital contentswithout an overlap of the packets; selecting distribution destinationsof the packets of the minimum unit in such a manner that identicalpackets of the minimum unit are not overlapped for a predeterminedgroup, wherein the distribution destinations are selected from theupdatable list of destinations included in the second network; andtransmitting the packets to a first network for transmitting to anintermediate node within the predetermined group for dynamicallyallocating the packets of the minimum unit for constructing the digitalcontents: wherein the intermediate node distributes copies of thepackets to clients of the selected destinations in the group.
 10. Theserver according to claim 9, wherein the central processor unit isconfigured for creating packets of a minimum unit including data fordistributing a copy of the packets of the minimum unit at least toanother group.
 11. A method for controlling a computer as a server fordistributing digital contents through a first network to a wide areagroup including a plurality of groups, the method making the computerexecute the steps of: storing the digital contents in a storage device;creating packets of a minimum unit by dividing the held digital contentsinto a plurality of packets, wherein the packets of the minimum unitcomprise the minimum number of packets capable of reconstructingoriginal digital contents without an overlap of the packets; selectingand registering therewith distribution destinations of the packets ofthe minimum unit in such a manner that identical packets of the minimumunit are not overlapped for a predetermined group, wherein thedistribution destinations are selected from an updatable list ofdestinations; wherein said updatable list comprises client groupidentifiers for identifying which clients belong to which client group;and wherein the server adds and removes the client destinations from theupdatable list responsive to said client destinations joining or leavingtheir respective client group; storing data of the selected distributiondestinations as the packets of the minimum unit; and reading andtransmitting, for constructing the digital contents, the stored packetsof the minimum unit to an intermediate node within the selecteddistribution destination for distributing copies of the packets to otherclients of the selected distribution destinations in the group whiledynamically allocating the read-out packets; wherein the group isconnected to the server through a second network connected to the firstnetwork through lines different in communication capacity.
 12. Anon-transitory computer readable recording medium recording therein aprogram for controlling a computer as a server for holding therein anddistributing digital contents, through a first network, to a wide areagroup including a plurality of groups connected through a secondnetwork, wherein the program when executed causes the computer executethe steps of: creating packets of a minimum unit by dividing the helddigital contents into a plurality of packets; selecting and registeringtherewith distribution destinations of the packets of the minimum unitin such a manner that identical packets of the minimum unit are notoverlapped for a predetermined group, wherein the distributiondestinations are selected from an updatable list of destinationscomprising: client group identifiers for identifying which clientsbelong to which client group, wherein each client group represents awide area network; a client list of the clients constructing the widearea network group within the second network, each client receivingpackets referring to source packet distribution data or a list ofpre-allocated copy destinations, which is received together with saidpackets of a minimum unit for constructing digital contents; storingdata of the selected distribution destinations as the packets of theminimum unit; and reading and transmitting, for constructing the digitalcontents, the stored packets of the minimum unit to an intermediate nodefor distributing copies of the packets to the other clients of theselected distribution destinations in the group while dynamicallyallocating the read-out packets; wherein the group is connected to theserver through a second network connected to the first network throughlines different in communication capacity.